[firebase-br] Transação

Thiago Balbino tbalbinos em gmail.com
Qui Nov 5 13:02:28 -03 2009


Boa tarde pessoal, possuo o seguite cenário na minha aplicação:
Delphi7 + Firebird -> Usando os componentes DBExpress.

Possuo um StoredProcedure para gravar os pedidos lançados no sistema,
no delphi para executar a procedure faço assim

function GravarPedido : Longint;
begin
  Start;  -> Funcao para inicar a transação

  //  apartir daqui passo os parametros para o componente
TSQLStoredProc da paleta dbExpress
  DMRelatoriosDC.SP_GRAVAR_PEDIDO.Params[0].Value  :=
DMEstoque.cdsPedidoGravarDFIDTRANSFISCAL.Value;
  DMRelatoriosDC.SP_GRAVAR_PEDIDO.Params[4].Value  :=
DMEstoque.cdsPedidoGravarDFIDCARTEIRA.Value;
  DMRelatoriosDC.SP_GRAVAR_PEDIDO.Params[7].Value  :=
DMEstoque.cdsPedidoGravarDFIDUNIDADE.Value;
  ......
   //  Fim dos parametros para o componente  TSQLStoredProc

   //aqui executo a procedure
   DMRelatoriosDC.SP_GRAVAR_PEDIDO.ExecProc;

   Commit;   //Função minha de commit;

end;

var
  TransacaoNF    : TTransactionDesc;

//Meus Procedimentos usados acima

Procedure Start;
begin
  TransacaoNF.TransactionID  := GeraID;
  TransacaoNF.IsolationLevel := xilREADCOMMITTED;
  DM.Conexao.StartTransaction(TransacaoNF);
end;

Procedure Commit;
begin
  DM.Conexao.Commit(TransacaoNF);
end;

Porem as vezes ao dentro da função GravarPedido ocorre o seguinte
erro:  "Transaction not assigned." na hora de ExecProc.

O que pode ser ? o que pode ser o que eu estou fazendo de errado ?

-- 
Thiago de Souza Balbino

Analista de Sistemas / Programador
Meta Tecnologia e Sistemas - Muriaé / MG
(32) 3721 - 8729
(32) 8867 - 8729
MSN: thiagodeb em hotmail.com




Mais detalhes sobre a lista de discussão lista