Array
(
)

DBExpress - gravar alterações para o BD (firebird)

Fgarske
   - 09 jan 2006

Olá!

Já li em vários lugares que para salvar as alterações em um determinado client dataset devo executar o método applyUpdates();
Isto está funcionando quando eu insiro ou edito um determinado registro de um dataset, mas quando deleto o registro, se eu executar esse méto ocorre um erro, e o registro não é excluido do BD.
O que devo fazer para efetivar essa exclusão??

Grato!


Thomaz_prg
   - 09 jan 2006

Isso deve estar acontecendo, porque, a exclusão do registro deve estar entrando em conflito com alguma regra do bancop (constraint ou verificação).
Certifique-se de que o applyupdates está sendo executado após a exclusão. Adicione também a linha abaixo no evento OnReconcileError do ClientDataSet:

Raise Exception.Create( E.Message );

Isso fará com que, caso surja algum problema no applyupdates, o mesmo seja mostrado em forma de exception.


Fgarske
   - 09 jan 2006

ocorre o erro EDatabaseError: unable to find record. no key was specified.
A tabela não tem nenhuma restrição de exclusão. é uma tabela com 2 campos sem vínculo (declarado) com outras.