DBExpress
04/04/2006
0
Tenho um sistema com banco de dados em InterBase e em Delphi.
Aconexão é feito com um SQLConnection, SQLDataSet, DataSetProvider e um ClientDataSet.
O problema é o seguinte:
Suponha que tenhamos o usuário A e o B, ambos acessando a mesma tabela e o mesmo registro.
Agora o usuário A e o B fazem mudanças nos mesmo registro, assim que o usuário A salva as alterações
no registro o usuário B vai e salvas também suas mudanças, porém o que o usuário B salvou não vai para
o banco de dados, e mais, o usuario B fica impedido de inserir no registro na tabela.
uso o seguinte procedimento para enviar os dados ao banco:
TD.TransactionID := 1;
TD.IsolationLevel := xilREADCOMMITTED;
SQLCGaragem.StartTransaction(TD);
CDSPessoas.ApplyUpdates(0);
SQLCGaragem.Commit(TD);
De alguma forma a transação continua aberta para o usuário A impedindo que o B efetue as mudanças ou novas
inserções depois que o A efetuou as suas.
Como eu faço para resolver isto?
Aconexão é feito com um SQLConnection, SQLDataSet, DataSetProvider e um ClientDataSet.
O problema é o seguinte:
Suponha que tenhamos o usuário A e o B, ambos acessando a mesma tabela e o mesmo registro.
Agora o usuário A e o B fazem mudanças nos mesmo registro, assim que o usuário A salva as alterações
no registro o usuário B vai e salvas também suas mudanças, porém o que o usuário B salvou não vai para
o banco de dados, e mais, o usuario B fica impedido de inserir no registro na tabela.
uso o seguinte procedimento para enviar os dados ao banco:
TD.TransactionID := 1;
TD.IsolationLevel := xilREADCOMMITTED;
SQLCGaragem.StartTransaction(TD);
CDSPessoas.ApplyUpdates(0);
SQLCGaragem.Commit(TD);
De alguma forma a transação continua aberta para o usuário A impedindo que o B efetue as mudanças ou novas
inserções depois que o A efetuou as suas.
Como eu faço para resolver isto?
Leufmt
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)