Fórum Editar registro do ClientDataSet após ApplyUdates #284645
14/06/2005
0
Olá, pessoal!
Uso Delphi6 e acesso Firebird via DBX com o conjunto ClientDataSet, DataSetProvider e SQLDataSet.
Após incluir um registro no ClientDataSet e usar o método ApplyUpdates, se tentar alterar em seguida o mesmo registro e usar novamente o ApplyUpdates é disparado o seguinte erro:
´Record not found or changed by another user´
É possível alterar um registro recém incluído no ClientDataSet após o ApplyUpdates ou tenho mesmo que disparar um novo select para poder editar o registro nessa situação?
Um abraço,
Jair
Uso Delphi6 e acesso Firebird via DBX com o conjunto ClientDataSet, DataSetProvider e SQLDataSet.
Após incluir um registro no ClientDataSet e usar o método ApplyUpdates, se tentar alterar em seguida o mesmo registro e usar novamente o ApplyUpdates é disparado o seguinte erro:
´Record not found or changed by another user´
É possível alterar um registro recém incluído no ClientDataSet após o ApplyUpdates ou tenho mesmo que disparar um novo select para poder editar o registro nessa situação?
Um abraço,
Jair
Jairroberto
Curtir tópico
+ 0
Responder
Posts
14/06/2005
Cesarpir
Amigo eu passei por esse problema, para solucionar eu armazeno em variaveis antes da gravação a(s) chave(s) primária(s) do registro que está sendo incluido ou alterado, após o applyupdates(0) eu posiciono novamente, utilizando as variaveis, ou seja:
Close;
Passo os parametros;
Open;
e por fim Edit;
Eu trabalho com o delphi 7, firebird 1.5 e dbexpress para acessar.
Espero que tenha entendido, ou que pelo menos te ajude algo, seria bom vc detalhar um pouco mais como faz, eu tenho datamodule e ele espera parametros para inclusão, alteração, exclusão e funciona.
Abraços
César
Close;
Passo os parametros;
Open;
e por fim Edit;
Eu trabalho com o delphi 7, firebird 1.5 e dbexpress para acessar.
Espero que tenha entendido, ou que pelo menos te ajude algo, seria bom vc detalhar um pouco mais como faz, eu tenho datamodule e ele espera parametros para inclusão, alteração, exclusão e funciona.
Abraços
César
Responder
Gostei + 0
14/06/2005
Jairroberto
Olá, César!
Também faço desta forma atualmente, mas não entendo que este seja um comportamento esperado, até porque cria algumas limitações na criação da interface com o usuário.
A mensagem é gerada no ReconcileError, o que indica que é disparada pela engine do banco de dados. Isso pode significar algum problema no controle da transação ou a falta de um commit explícito, mas eu faço tudo isso.
Se alguém puder colaborar com outras soluções...
De qualquer forma, muito obrigado César.
Um abraço,
Jair
Também faço desta forma atualmente, mas não entendo que este seja um comportamento esperado, até porque cria algumas limitações na criação da interface com o usuário.
A mensagem é gerada no ReconcileError, o que indica que é disparada pela engine do banco de dados. Isso pode significar algum problema no controle da transação ou a falta de um commit explícito, mas eu faço tudo isso.
Se alguém puder colaborar com outras soluções...
De qualquer forma, muito obrigado César.
Um abraço,
Jair
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)