Como gravar dados de micros diferentes.
Estou com um problema ao gravar dados do meu cliente no servidor.
Aparece esse erro:
Meu sistema está funcionando assim:
Estou usando Interbase como gerenciador de dados.
O Programa server está aberto e conectado ao banco de dados por:
Ibdatabase-Ibtransaction-Ibdataset (tudo ativado)
Tem um dbgrid mostrando os dados da tabela CONECTADOS.
O Programa client acessa o banco de dados no servidor por:
Ibdatabase-Ibtransaction-Ibdataset e o código que estou usando para gravar o registro é o seguinte:
Os dados são gravados normalmente.
Mas logo em seguida preciso gravar uma informação em determinado campo na mesma tabela, só que agora a informação deve ser gravado pelo server, quando o server tenta gravar da esse erro.
Por que ocorre esse conflito?
Já que as informações não estão sendo gravadas ao mesmo tempo.
Não consigo gravar informações no mesmo banco de micros diferentes?
Aparece esse erro:
Deadlock
Update conflicts with concurrent update
Meu sistema está funcionando assim:
Estou usando Interbase como gerenciador de dados.
O Programa server está aberto e conectado ao banco de dados por:
Ibdatabase-Ibtransaction-Ibdataset (tudo ativado)
Tem um dbgrid mostrando os dados da tabela CONECTADOS.
O Programa client acessa o banco de dados no servidor por:
Ibdatabase-Ibtransaction-Ibdataset e o código que estou usando para gravar o registro é o seguinte:
with frmdmib do begin ibdataset2.close; ibdataset2.parambyname(´nome´).asstring:=´Micro02.mshome.net´; ibdataset2.open; ibdataset2.Edit; ibdataset2.FieldByName(´usuario´).AsString := edit1.Text; ibdataset2.Post; ibdataset2.Transaction.CommitRetaining; end;
Os dados são gravados normalmente.
Mas logo em seguida preciso gravar uma informação em determinado campo na mesma tabela, só que agora a informação deve ser gravado pelo server, quando o server tenta gravar da esse erro.
Deadlock
Update conflicts with concurrent update
Por que ocorre esse conflito?
Já que as informações não estão sendo gravadas ao mesmo tempo.
Não consigo gravar informações no mesmo banco de micros diferentes?
Latrodectrus
Curtidas 0
Respostas
Kiaratto
29/08/2003
Essa mensagem já apareceu pra mim algumas vezes, mas não é frequente.
quando apareceu, fui no console do interbase e digitei um commit e depois tudo bem.
Essa mensagem ocorre qdo vc grava dados numa tabela e antes desses dados serem gravados definitivamente com o commit vc tenta alterar amesma tabela.
quando apareceu, fui no console do interbase e digitei um commit e depois tudo bem.
Essa mensagem ocorre qdo vc grava dados numa tabela e antes desses dados serem gravados definitivamente com o commit vc tenta alterar amesma tabela.
GOSTEI 0
Mordred
29/08/2003
Exatamente. O deadlock acontece quando uma aplicação tenta alterar dados que já estão sendo usados por outra aplicação. Desde o momento em que a outra aplicação usa StartTransaction até o momento do Commit/CommitRetaining, o(s) registro(s) fica(m) bloqueado(s).
A solução é fazer a outra aplicação dar Commit/CommitRetaining e liberar o registro.
A solução é fazer a outra aplicação dar Commit/CommitRetaining e liberar o registro.
GOSTEI 0