Fórum Erro de transação #43114
17/03/2004
0
A questão é a seguinte na primeira vez que executo o código abaixo somente o showmessage transacao1 é mostrado, nas demais vezes todos os showmessage são mostrados.. é como se na minha primeira execução os códigos de atribuicao para sql-insert fizessem com que minha transação fosse perdida....
Porque isso está acontecendo?
Porque está dando o erro somente na primeira em que executo o código?
dmtran.a.StartTransaction;
try
dmq2.a.IB_Transaction:=dmtran.a;
if not dmq3.SPhistEsc.Prepared then
dmq3.SPhistEsc.Prepare;
dmq3.SPhistEsc.ExecProc;
[b:67d9e7257e]if dmtran.a.InTransaction=true then
showmessage(´transacao1´);[/b:67d9e7257e]
dmq2.a.ParamByName //codido de atribuicao ao insert(´pcodigo´).AsInteger:=dmq3.SPhistEsc.ParamByName(´ID´).AsInteger;
dmq2.a.ParamByName(´pcod_aluno´).AsInteger:=dmq3.SPhistEsc.ParamByName(´ID´).AsInteger;
[b:67d9e7257e]if dmtran.a.InTransaction=true then
showmessage(´transacao2´);[/b:67d9e7257e]
dmq2.a.ExecSQL;
[b:67d9e7257e]if dmtran.a.InTransaction=true then
showmessage(´transacao3´);[/b:67d9e7257e]
dmtran.a.Commit;
dmq2.a.IB_Transaction:=nil;
except
dmtran.a.Rollback;
dmq2.a.IB_Transaction:=nil;
end;
Ferramentas em uso: Delphi 7, Firebird 1.5.0.4306 e Ibo 4.2.Ie.
Porque isso está acontecendo?
Porque está dando o erro somente na primeira em que executo o código?
dmtran.a.StartTransaction;
try
dmq2.a.IB_Transaction:=dmtran.a;
if not dmq3.SPhistEsc.Prepared then
dmq3.SPhistEsc.Prepare;
dmq3.SPhistEsc.ExecProc;
[b:67d9e7257e]if dmtran.a.InTransaction=true then
showmessage(´transacao1´);[/b:67d9e7257e]
dmq2.a.ParamByName //codido de atribuicao ao insert(´pcodigo´).AsInteger:=dmq3.SPhistEsc.ParamByName(´ID´).AsInteger;
dmq2.a.ParamByName(´pcod_aluno´).AsInteger:=dmq3.SPhistEsc.ParamByName(´ID´).AsInteger;
[b:67d9e7257e]if dmtran.a.InTransaction=true then
showmessage(´transacao2´);[/b:67d9e7257e]
dmq2.a.ExecSQL;
[b:67d9e7257e]if dmtran.a.InTransaction=true then
showmessage(´transacao3´);[/b:67d9e7257e]
dmtran.a.Commit;
dmq2.a.IB_Transaction:=nil;
except
dmtran.a.Rollback;
dmq2.a.IB_Transaction:=nil;
end;
Ferramentas em uso: Delphi 7, Firebird 1.5.0.4306 e Ibo 4.2.Ie.
Brahma
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)