Sistema Cliente/Servidor

03/04/2006

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, mas também não retorna nenhum erro avisando que já tem outro usuário que mudou aquele
registro.
uso o seguinte procedimento para enviar os dados ao banco:
SQLCGaragem.StartTransaction(TDPessoas);
CDSPessoas.ApplyUpdates(0);
SQLCGaragem.Commit(TDPessoas);

De alguma forma a transação continua aberta para o usuário A impedindo que o B efetue as mudanças depois
que o A efetuou as suas.
Como eu faço para resolver isto?
Como faço para retornar uma mensagem para o usuário B no momento que o A esta editando o mesmo registro?

Desde já muito obrigado


Leufmt