Obrigado Fabiano Em 17 de março de 2011 17:54, Fabiano Machado Dias < [email protected]> 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 > <[email protected]>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 >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > > > _______________________________________________ > pgbr-geral mailing > [email protected]https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
