Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-18 Por tôpico izana souza torres
Obrigado Fabiano

Em 17 de março de 2011 17:54, Fabiano Machado Dias 
fabi...@wolaksistemas.com.br escreveu:

  Não precisa, pode ser dentro da função e dentro dessa função você pode
 chamar outras funções.

 Usamos isso direto no nosso ERP

 Exemplo:

 CREATE OR REPLACE FUNCTION fnc.ajustecusto()
   RETURNS void AS
 $BODY$
 DECLARE
 rNotafiscalentrada_item RECORD;
 rNfei   RECORD;
 BEGIN
 FOR rNotafiscalentrada_item IN SELECT * FROM notafiscalentrada_item
 ORDER BY pknotafiscalentrada_item
 LOOP
 SELECT INTO rNfei
 (fnc.notafiscalentrada_item_calcular(rNotafiscalentrada_item.fknotafiscalentrada,rNotafiscalentrada_item.pknotafiscalentrada_item)).*;
 UPDATE notafiscalentrada_item SET
 valorunitariocusto = COALESCE(rNfei.valorunitariocusto,0),
 demonstrativocalculocusto = rNfei.demonstrativocalculocusto
 WHERE pknotafiscalentrada_item =
 rNotafiscalentrada_item.pknotafiscalentrada_item;
 END LOOP;
 END;
 $BODY$
   LANGUAGE 'plpgsql' VOLATILE
 ALTER FUNCTION fnc.ajustecusto() OWNER TO postgres;


 Se for de interesse dá uma olhada nesse link, tem vários exemplos
 semelhantes

 http://pgbr.postgresql.org.br/2009/palestras/aud2/ERP.pdf
 http://www.4linux.com.br/noticias/2010/PostgreSQL/PGCon2009


 Abraço,
 Fabiano Machado Dias



 Em 17/3/2011 15:16, izana souza torres escreveu:

 Blz..então cada função seria uma transação ?? só q dentro da função que
 estou trabalhando não posso utilizar os comando COMMIT ou ROLLBACK
 explicitamente..



 Logo o q estou entendo pelo o q os nobre colegas estão dizendo é o
 seguinte..


 Imagine um código Java = E nele que vou trantar o COMMIT E ROLLBACKP
 falando grosseirament


 exemplo;

 try {

 stmt.execute(select fecharCaixa()); // aqui ele chama a função fechar caixa
 conn.commit()  // aqui ele comita caso tudo ok

 }catch(Exception e){
   conn.rollback() // caso algum problema na hora de feixar o caixa
 }


 OU seja o que vcs estão tentando me dizer é que é em nivel de aplicação que
 eu vou utilizar o Comando commit e rollback
 por exemplo..


 Em 17 de março de 2011 12:48, Rogério Bassete 
 roge...@microwork.inf.brescreveu:


 Sim,
 Como você falou, elas podem fazer para de uma transação quando chamada
 dentro de uma.
 Mas teria como vc me dar um exemplo prático ?

  Izana,

 begin;
 insert into foo values ('teste','teste2');
 update foo set campo1 = 'teste3' where id = 3;
 -- chama a sua função.
 select funcao_baixa_estoque();
 select funcao_gera_log();
 commit;

 Rogério Bassete

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



 ___
 pgbr-geral mailing 
 listpgbr-ge...@listas.postgresql.org.brhttps://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico izana souza torres
Nobre colegas,


Eu estou mudando de banco de dados, estou passando de MYSQL para POSTGRES.

Meu problema é o seguinte, estou migrando uma base e não tenho muito
conhecimento no POSTGRES, na minha base do MYSQL tenho algumas FUNÇÕES e
dentro dessas funções tenho implementado algumas TRANSAÇÕES, minha pergunta
é:


No caso do Postgres onde eu armazeno minhas transações? É dentro de uma
função também como no MYSQL?




Entenderam minha pergunta?
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Euler Taveira de Oliveira
Em 17-03-2011 09:24, izana souza torres escreveu:
 No caso do Postgres onde eu armazeno minhas transações? É dentro de uma
 função também como no MYSQL?

O que você chama de transação? Podes dar um exemplo?


-- 
   Euler Taveira de Oliveira
   http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico izana souza torres
Vamos lá:
Tipo imaginamos o seguinte, que no MYSQL e tenha uma função FecharVenda();

dentro dessa função é iniciada uma transação para adicionar os itens
relacionados a tabela vendas..vamos ao exeplo

CREATE FUNCTION FecharVenda()

START TRANSACTION,

INSERT venda() // cria a venda

INSERT itens ()  //Inseres os intes relacionado a venda

ROLLBACK // caso tenha algum erro

COMMIT // Se tudo foi ok.



É mais ou menos isso ai, tipo tenho uma função em MYSQL que dentro dela se
inicia uma transação,
se tudo foi corretamento da um COMMIT e tiver algum erro na operação
ROLLBACK e desfaz tudo..

Entendeu ?



Em 17 de março de 2011 09:31, Euler Taveira de Oliveira
eu...@timbira.comescreveu:

 Em 17-03-2011 09:24, izana souza torres escreveu:
  No caso do Postgres onde eu armazeno minhas transações? É dentro de uma
  função também como no MYSQL?
 
 O que você chama de transação? Podes dar um exemplo?


 --
   Euler Taveira de Oliveira
   http://www.timbira.com/
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Flavio Henrique Araque Gurgel
 É mais ou menos isso ai, tipo tenho uma função em MYSQL que dentro dela se
 inicia uma transação,
 se tudo foi corretamento da um COMMIT e tiver algum erro na operação
 ROLLBACK e desfaz tudo..

No PostgreSQL as funções não podem conter uma transação em seu código.
Elas podem sim ser parte de uma transação quando chamadas dentro de uma.

Mas isso aí é uma função do MySQL mesmo? Me pareceu estranho...

Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico izana souza torres
Sim,
Como você falou, elas podem fazer para de uma transação quando chamada
dentro de uma.
Mas teria como vc me dar um exemplo prático ?



Em 17 de março de 2011 10:37, Flavio Henrique Araque Gurgel 
fha...@gmail.com escreveu:

  É mais ou menos isso ai, tipo tenho uma função em MYSQL que dentro dela
 se
  inicia uma transação,
  se tudo foi corretamento da um COMMIT e tiver algum erro na operação
  ROLLBACK e desfaz tudo..

 No PostgreSQL as funções não podem conter uma transação em seu código.
 Elas podem sim ser parte de uma transação quando chamadas dentro de uma.

 Mas isso aí é uma função do MySQL mesmo? Me pareceu estranho...

 Flavio Gurgel
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Fernando N. Rodrigues
Por acaso estas funções não estariam na aplicação?
Não seria a aplicação no seu caso atual que está fazendo esse controle de
transação no MySQL?
Abs,
Fernando N. Rodrigues
fernandonon...@gmail.com




Em 17 de março de 2011 11:44, izana souza torres
izanator...@gmail.comescreveu:

 Sim,
 Como você falou, elas podem fazer para de uma transação quando chamada
 dentro de uma.
 Mas teria como vc me dar um exemplo prático ?



 Em 17 de março de 2011 10:37, Flavio Henrique Araque Gurgel 
 fha...@gmail.com escreveu:

  É mais ou menos isso ai, tipo tenho uma função em MYSQL que dentro dela
 se
  inicia uma transação,
  se tudo foi corretamento da um COMMIT e tiver algum erro na operação
  ROLLBACK e desfaz tudo..

 No PostgreSQL as funções não podem conter uma transação em seu código.
 Elas podem sim ser parte de uma transação quando chamadas dentro de uma.

 Mas isso aí é uma função do MySQL mesmo? Me pareceu estranho...

 Flavio Gurgel
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Roberto Mello
2011/3/17 izana souza torres izanator...@gmail.com

 Sim,
 Como você falou, elas podem fazer para de uma transação quando chamada dentro 
 de uma.
 Mas teria como vc me dar um exemplo prático ?


No PostgreSQL, quando você executa uma função, ela roda sob uma
transação. Se a função tiver uma exceção não tratada, tudo que houve
na função (e na transação que chamou a função) será descartado
(ROLLBACK).  Da documentação [1]:`

It is important not to confuse the use of BEGIN/END for grouping
statements in PL/pgSQL with the similarly-named SQL commands for
transaction control. PL/pgSQL'sBEGIN/END are only for grouping; they
do not start or end a transaction. Functions and trigger procedures
are always executed within a transaction established by an outer query
— they cannot start or commit that transaction, since there would be
no context for them to execute in. However, a block containing an
EXCEPTION clause effectively forms a subtransaction that can be rolled
back without affecting the outer transaction. For more about that see
Section 39.6.5.

Para controlar erros dentro da função, você pode usar sub-blocos
dentro da função, conforme descrito em [2]

Ficou claro?

Roberto

[1] http://www.postgresql.org/docs/9.0/interactive/plpgsql-structure.html
[2] 
http://www.postgresql.org/docs/9.0/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Rogério Bassete

Sim,
Como você falou, elas podem fazer para de uma transação quando chamada 
dentro de uma.
Mas teria como vc me dar um exemplo prático ?

Izana,

begin;
insert into foo values ('teste','teste2');
update foo set campo1 = 'teste3' where id = 3;
-- chama a sua função.
select funcao_baixa_estoque();
select funcao_gera_log();
commit;

Rogério Bassete 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico izana souza torres
No mysql a aplicação chama a função...e dentro da função chamada é iniciada
a transação feitaas as operações e depois comitada dentro da própria função

Mas acho q entendir agora o q os nobres colegas estão tentando me dizer..

Tipo posso criar uma função no postgres para fazer uma operação que preciso
e a nivel de aplicação eu
iniciou a transação chamo a função para fazer as operações e depois a nivel
de aplicação dou um comite caso ok..

seria isso né ?

Em 17 de março de 2011 11:02, Fernando N. Rodrigues 
fernandonon...@gmail.com escreveu:

 Por acaso estas funções não estariam na aplicação?
 Não seria a aplicação no seu caso atual que está fazendo esse controle de
 transação no MySQL?
 Abs,
 Fernando N. Rodrigues
 fernandonon...@gmail.com




 Em 17 de março de 2011 11:44, izana souza torres 
 izanator...@gmail.comescreveu:

 Sim,
 Como você falou, elas podem fazer para de uma transação quando chamada
 dentro de uma.
 Mas teria como vc me dar um exemplo prático ?



 Em 17 de março de 2011 10:37, Flavio Henrique Araque Gurgel 
 fha...@gmail.com escreveu:

  É mais ou menos isso ai, tipo tenho uma função em MYSQL que dentro dela
 se
  inicia uma transação,
  se tudo foi corretamento da um COMMIT e tiver algum erro na operação
  ROLLBACK e desfaz tudo..

 No PostgreSQL as funções não podem conter uma transação em seu código.
 Elas podem sim ser parte de uma transação quando chamadas dentro de uma.

 Mas isso aí é uma função do MySQL mesmo? Me pareceu estranho...

 Flavio Gurgel
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico izana souza torres
Blz..então cada função seria uma transação ?? só q dentro da função que
estou trabalhando não posso utilizar os comando COMMIT ou ROLLBACK
explicitamente..



Logo o q estou entendo pelo o q os nobre colegas estão dizendo é o
seguinte..


Imagine um código Java = E nele que vou trantar o COMMIT E ROLLBACKP falando
grosseirament


exemplo;

try {

stmt.execute(select fecharCaixa()); // aqui ele chama a função fechar caixa
conn.commit()  // aqui ele comita caso tudo ok

}catch(Exception e){
  conn.rollback() // caso algum problema na hora de feixar o caixa
}


OU seja o que vcs estão tentando me dizer é que é em nivel de aplicação que
eu vou utilizar o Comando commit e rollback
por exemplo..


Em 17 de março de 2011 12:48, Rogério Bassete
roge...@microwork.inf.brescreveu:


 Sim,
 Como você falou, elas podem fazer para de uma transação quando chamada
 dentro de uma.
 Mas teria como vc me dar um exemplo prático ?

 Izana,

 begin;
 insert into foo values ('teste','teste2');
 update foo set campo1 = 'teste3' where id = 3;
 -- chama a sua função.
 select funcao_baixa_estoque();
 select funcao_gera_log();
 commit;

 Rogério Bassete

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Flavio Henrique Araque Gurgel
Em 17 de março de 2011 15:16, izana souza torres
izanator...@gmail.com escreveu:
 Blz..então cada função seria uma transação ?? só q dentro da função que
 estou trabalhando não posso utilizar os comando COMMIT ou ROLLBACK
 explicitamente..



 Logo o q estou entendo pelo o q os nobre colegas estão dizendo é o
 seguinte..


 Imagine um código Java = E nele que vou trantar o COMMIT E ROLLBACKP falando
 grosseirament


 exemplo;

 try {

 stmt.execute(select fecharCaixa()); // aqui ele chama a função fechar caixa
 conn.commit()  // aqui ele comita caso tudo ok

 }catch(Exception e){
   conn.rollback() // caso algum problema na hora de feixar o caixa
 }


 OU seja o que vcs estão tentando me dizer é que é em nivel de aplicação que
 eu vou utilizar o Comando commit e rollback
 por exemplo..

Isso mesmo.
Só que no PostgreSQL não é START TRANSACTION, é BEGIN.

[]s
Flavio Gurgel
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico izana souza torres
START TRANSACTION  tbem funciona no Postgres, acabei de fazer um teste

é padrão SQL

Em 17 de março de 2011 14:18, Flavio Henrique Araque Gurgel 
fha...@gmail.com escreveu:

 Em 17 de março de 2011 15:16, izana souza torres
 izanator...@gmail.com escreveu:
  Blz..então cada função seria uma transação ?? só q dentro da função que
  estou trabalhando não posso utilizar os comando COMMIT ou ROLLBACK
  explicitamente..
 
 
 
  Logo o q estou entendo pelo o q os nobre colegas estão dizendo é o
  seguinte..
 
 
  Imagine um código Java = E nele que vou trantar o COMMIT E ROLLBACKP
 falando
  grosseirament
 
 
  exemplo;
 
  try {
 
  stmt.execute(select fecharCaixa()); // aqui ele chama a função fechar
 caixa
  conn.commit()  // aqui ele comita caso tudo ok
 
  }catch(Exception e){
conn.rollback() // caso algum problema na hora de feixar o caixa
  }
 
 
  OU seja o que vcs estão tentando me dizer é que é em nivel de aplicação
 que
  eu vou utilizar o Comando commit e rollback
  por exemplo..

 Isso mesmo.
 Só que no PostgreSQL não é START TRANSACTION, é BEGIN.

 []s
 Flavio Gurgel
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Flavio Henrique Araque Gurgel
 START TRANSACTION  tbem funciona no Postgres, acabei de fazer um teste

 é padrão SQL

Obrigado!
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico izana souza torres
Nobre colegas, estou fazendo essas perguntas pq não conheço muito o POSTGRES
logo peço desculpa pela ignorancia.

Além disso estou estudno pq vou dar aula de administração em banco de dados,
e fui obrigado a trabalhar com POSTGRES.

Logo estou trabalhando com Postgres e eleborando algumas tarefas para os
alunos.

Entre eles fazer engenharia reverça utilizando o information_esquema do
postgres, ou seja trabalhando com catalago.

Fazer também transação em Postgres, e fazer replicação de banco de dados,
gostaria de saber mais uma coisa
interesnate sobre o Postgres q eu posso abordar..

Tarefas e tudo mais..estou tento um pouco de dificuldade de montar tarefas
sobre transações..não tenho mente regras de negocios
q exija transações..

Mas já montei tarefas para eles visualizarem os nivel de isolamento e tudo
mais,

vcs tem mais ideias


Em 17 de março de 2011 14:35, Flavio Henrique Araque Gurgel 
fha...@gmail.com escreveu:

  START TRANSACTION  tbem funciona no Postgres, acabei de fazer um teste
 
  é padrão SQL

 Obrigado!
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Roberto Mello
2011/3/17 izana souza torres izanator...@gmail.com:
 Nobre colegas, estou fazendo essas perguntas pq não conheço muito o POSTGRES

NOBRES colegas.

 logo peço desculpa pela ignorancia.

Não precisa pedir desculpas. Ajudamos uns aos outros.

 Além disso estou estudno pq vou dar aula de administração em banco de dados,
 e fui obrigado a trabalhar com POSTGRES.

Aonde você vai dar aula?
Acho que vais descobrir que ser obrigado a trabalhar com o Postgres e'
muito bom.

 Entre eles fazer engenharia reverça utilizando o information_esquema do

reversa.

 Fazer também transação em Postgres, e fazer replicação de banco de dados,
 gostaria de saber mais uma coisa
 interesnate sobre o Postgres q eu posso abordar..

Se e' de administração, há uma série de tópicos: otimização,
monitoramento, schemas, particionamento, seleção de discos, backup e
recuperação, gerenciadores de conexão, melhores práticas, etc, etc.

Boa sorte,

Roberto
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Dúvida Sobre Transações Em Postgres

2011-03-17 Por tôpico Fabiano Machado Dias
Não precisa, pode ser dentro da função e dentro dessa função você pode 
chamar outras funções.


Usamos isso direto no nosso ERP

Exemplo:

CREATE OR REPLACE FUNCTION fnc.ajustecusto()
  RETURNS void AS
$BODY$
DECLARE
rNotafiscalentrada_item RECORD;
rNfei   RECORD;
BEGIN
FOR rNotafiscalentrada_item IN SELECT * FROM notafiscalentrada_item 
ORDER BY pknotafiscalentrada_item

LOOP
SELECT INTO rNfei 
(fnc.notafiscalentrada_item_calcular(rNotafiscalentrada_item.fknotafiscalentrada,rNotafiscalentrada_item.pknotafiscalentrada_item)).*;

UPDATE notafiscalentrada_item SET
valorunitariocusto = COALESCE(rNfei.valorunitariocusto,0),
demonstrativocalculocusto = rNfei.demonstrativocalculocusto
WHERE pknotafiscalentrada_item = 
rNotafiscalentrada_item.pknotafiscalentrada_item;

END LOOP;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
ALTER FUNCTION fnc.ajustecusto() OWNER TO postgres;


Se for de interesse dá uma olhada nesse link, tem vários exemplos 
semelhantes


http://pgbr.postgresql.org.br/2009/palestras/aud2/ERP.pdf
http://www.4linux.com.br/noticias/2010/PostgreSQL/PGCon2009


Abraço,
Fabiano Machado Dias



Em 17/3/2011 15:16, izana souza torres escreveu:
Blz..então cada função seria uma transação ?? só q dentro da função 
que estou trabalhando não posso utilizar os comando COMMIT ou ROLLBACK 
explicitamente..




Logo o q estou entendo pelo o q os nobre colegas estão dizendo é o 
seguinte..



Imagine um código Java = E nele que vou trantar o COMMIT E ROLLBACKP 
falando grosseirament



exemplo;

try {

stmt.execute(select fecharCaixa()); // aqui ele chama a função fechar 
caixa

conn.commit()  // aqui ele comita caso tudo ok

}catch(Exception e){
  conn.rollback() // caso algum problema na hora de feixar o caixa
}


OU seja o que vcs estão tentando me dizer é que é em nivel de 
aplicação que eu vou utilizar o Comando commit e rollback

por exemplo..


Em 17 de março de 2011 12:48, Rogério Bassete 
roge...@microwork.inf.br mailto:roge...@microwork.inf.br escreveu:



Sim,
Como você falou, elas podem fazer para de uma transação quando
chamada
dentro de uma.
Mas teria como vc me dar um exemplo prático ?

Izana,

begin;
insert into foo values ('teste','teste2');
update foo set campo1 = 'teste3' where id = 3;
-- chama a sua função.
select funcao_baixa_estoque();
select funcao_gera_log();
commit;

Rogério Bassete

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
mailto:pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral