Fórum Deadlock #187014
07/10/2003
0
Utilizo o Delphi 6 com o Interbase 6.
Fernando Marroco
Curtir tópico
+ 0Posts
08/10/2003
Adilsond
Gostei + 0
08/10/2003
Fernando Marroco
with dmSenhas do begin
bd.StartTransaction;
try
with dmSenhas.qryControle_Geral do
begin
close;
if not prepared then prepare;
open;
edit;
qryControle_Geralentrada_ok = ´S´;
qryControle_Geralsaida_ok = ´N´;
post;
end;
bd.Commit;
except
on E:EDataBaseError do begin
bd.Rollback;
showError( E );
abort;
end;
o segundo terminal entra faz a mesma rotina (logico ne´) e grava normal sai normal gravando da mesma forma a mesma rotina de saida.
with dmSenhas do begin
bd.StartTransaction;
try
with dmSenhas.qryControle_Geral do
begin
close;
if not prepared then prepare;
open;
edit;
qryControle_Geralentrada_ok = ´N´;
qryControle_Geralsaida_ok = ´S´;
post;
end;
bd.Commit;
except
on E:EDataBaseError do begin
bd.Rollback;
showError( E );
abort;
end;
Só que na hora da saída do primeiro terminal que entrou no sistema ele da a seguinte mensagem:
A DEADLOCK WAS DETECTED
DEADLOCK UPDATE CONFLICTS WITH CONCURRENT UPDATE
no primeiro terminal que entrou ??????? porque o que esta de errado?????
será que é algum problema de configuração do INTERBASE ou do BDE?????? será que tenho que acrescentar algum comando quando eu STARTO UMA TRANSAÇÃO.... ????? me ajude por favor tenho que entregar esse sistema meu emprego depende disso??????? estou desesperado!!!!!!
Gostei + 0
09/10/2003
Adilsond
Outra coisa, experimente fechar sua query.
begin with dmSenhas do begin bd.StartTransaction; try with dmSenhas.qryControle_Geral do begin if Active then Close; if not Prepared then Prepare; Open; Edit; qryControle_Geralentrada_ok.Value := ´S´; qryControle_Geralsaida_ok.Value := ´N´; Post; bd.Commit; Close; end; except on E:EDataBaseError do begin bd.Rollback; ShowError(E); qryControle_Geral.Close; Abort; end; end; end; end;
Gostei + 0
09/10/2003
Fernando Marroco
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)