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

Responder a