deadlock update conflicts with concurrent update com IBX

Firebird

25/01/2006

Ola pessoal

Tenho uma aplicaçao cliente/Servidor, com 5 terminais, realizando consultas e transaçoes ao mesmo tempo, porem vem aprecendo esta mensagem, sei que é pq tem outro terminal dando insert, isto esta bloqueando os outros insert. Mas nao sei como resolver, segue o codigo abaixo

SQLInsertNota.Transaction := frmModulo.Database.InternalTransaction;

SQLInsertNota.Close;
SQLInsertNota.ParamByName(´CS_CLIENTE´).AsInteger := Codigo;
SQLInsertNota.ParamByName(´CS_USUARIO´).AsInteger := frmModulo.Cod_Usuario;
SQLInsertNota.ParamByName(´CS_PAGAMENTO´).AsInteger := CodPgto;

if not frmModulo.Database.InternalTransaction.InTransaction then
frmModulo.Database.InternalTransaction.StartTransaction;

SQLInsertNota.Prepare;
SQLInsertNota.ExecQuery;
try
frmModulo.Database.InternalTransaction.Commit;
except
Application.MessageBox(´Erro ao Gravar a Nota´,´Cadastro de Notinha´,MB_OK+MB_ICONERROR);
frmModulo.Database.InternalTransaction.Rollback;
end;


Kenio_c

Kenio_c

Curtidas 0

Respostas

Fhpita

Fhpita

25/01/2006

Tente usar o CommitRetaining e RollbackRetaining


GOSTEI 0
Kenio_c

Kenio_c

25/01/2006

Valeu fhpita!!
Mas ja tentei e naum deu certo

Mas ja resolvi o problema, se alguem preceisar e so me pedir q posto


GOSTEI 0
Mordred

Mordred

25/01/2006

Estou tendo o mesmo problema e meu PDV está perdendo itens de cupom...
Como foi que vc resolveu, Kenio?


GOSTEI 0
Kenio_c

Kenio_c

25/01/2006

Mordred, foi ate simples, eu tive de passar um controle de transaçao no transaction e em cada post tenho de verificar se o controle esta ativo ou nao, caso de nao start para iniciar


GOSTEI 0
POSTAR