[firebase-br] Por favor, duvida em Transacao e Stored Procedure >>> melhor detalhada <<<

Glaucos Ginez glaucosginez em gmail.com
Ter Ago 28 06:37:22 -03 2018


O problema deve estar nessa SP então, coloca ela no pastebin e manda o link

Em seg, 27 de ago de 2018 8:47 PM, Antonio Carlos <a.lima.silva em terra.com.br>
escreveu:

> Depois de ler o que postei anteriormente, percebi que ficou vago.
>
> Ambiente : Firebird 2.5, Delphi XE com DBExpress ( sistema legado não
> posso mudar )
>
> Em um dado ponto do sistema, onde existe a concretização da venda, preciso
> fazer toda a operação referente a lançamento de movimentação de itens,
> financeiro e etc.
>
> Isso deve ser feito no contexto de transação onde havendo sucesso é feito
> um Commit e havendo erro um Roolback
>
> Estou processando tudo através uma SP da seguinte forma :
>
> try
>   sqlSP := TSQLStoredProc.Create(nil);
>   try
>    sqlSP.SQLConnection := Conn;
>    T := Conn.BeginTransaction(TDBXIsolations.ReadCommitted);
>
>    with sqlSP do
>          begin
>             StoredProcName := 'SP_PROCESSA';
>            ParamByName('IN_DADOS').AsString  := 'STRING DE PARAMETROS'
>            ExecProc;
>         end
>      Conn.CommitFreeAndNil(T);
>    finnaly
>        FreeAndNil(sqlSP);
>    end
> except
>   Conn.RollbackFreeAndNil(T);
> end;
>
> São pedidos sempre diferentes, mas quando ocorre de haver na baixa em um
> pedido produtos iguais da DEADLOCK e parte é executa e parte não, mesmo
> havendo a transação declarada explicitamente.
>
> Eu não entendo porque isso, pois entendo que deveria haver uma fila.
>
> Poderiam por favor dar uma luz ?Obrigado.
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista