Atualização com ClientDataSet

Delphi

18/01/2006

Pessoal,

Quando eu clico no botão Novo, executa o comando cdsPadrao.Append. Aí em preencho os campos e clico em Gravar executando assim o cdsPadrao.Post e em seguida o ApplyUpdates.

Se logo depois eu clicar no botão Editar executa o cdsPadrao.Edit. Só que depois eu clico no botão Gravar e não esta atualizando os dados na base de dados.

O que pode ser?

Estou usando Delphi 2006, SQL Server com Multicamadas.

Desde já agradeço.

Cristiano Mário


Cristianojedi

Cristianojedi

Curtidas 0

Respostas

Thomaz_prg

Thomaz_prg

18/01/2006

Quais componentes está usando como conexão com o banco de dados?? (ADO, DBX, BDE, etc)


GOSTEI 0
Cristianojedi

Cristianojedi

18/01/2006

ADO...


Cristiano


GOSTEI 0
Thomaz_prg

Thomaz_prg

18/01/2006

Antes de verificar se é algum problema no CDS, verifique se não está sendo retornado nenhum erro para o CDS. No evento OnReconcileError coloque o código:
raise Exception.Create( E.Message );


Isso fará com que, se houver erros, o mesmo seja mostrado. Outra coisa, se você não estiver ´commitando´ a transação, tente fazer isso manualmente. No evento BeforeApplyUpdates do DataSetProvider coloque:
  
if not ADOConnection1.InTransaction then
    ADOConnection1.BeginTrans;


e no AfterApplyUpdates:
if ADOConnection1.InTransaction then
    ADOConnection1.CommitTrans;


Isso forcará o sistema a gravar os dados. Normalmente o proprio CDS deveria fazer isso, mas acontece que com alguns componentes (IBX por exemplo) isso não ocorre. As alterações ficam pendentes até que se feche a aplicação cliente.


GOSTEI 0
Cristianojedi

Cristianojedi

18/01/2006

Ok!!!

Em casa eu vou testar e posto aqui depois.

Muito obrigado, thomaz_prg!!!

Cristiano Mário


GOSTEI 0
POSTAR