Saber se houve modificação ClientDataSet antes ApplyUpdate

Delphi

19/09/2006

Pessoal,

Estou utilizando BDS 2006 + SQL Server 2005 e DBExpress, faço um post nos meus dados utilizando TClientDataSet.Post e em seguinda TClientDataSet.Applyupdates(0).

Tem como antes de dar um ApplyUpdate eu verificar se o TClientDataSet foi modificado ? Eu usei a propriedade:

if myClientDataSet.Modified = True then
myClientDataSet.ApplyUpdate(0);

Mas mesmo com o código acima eu alterando a tabela gravando ou excluindo o registro ele não diz q o TClientDataSet foi modificado. Tem como saber isso pelo Delta ? (Não sei onde ví isso)

Obrigado


Adrbrusc

Adrbrusc

Curtidas 0

Melhor post

Marco Salles

Marco Salles

19/09/2006

Tem como saber isso pelo Delta ? (Não sei onde ví isso)



Delta é um OLEVariant que armazena as ALTERAÇÕES feitas em um ClientDataSet.



voce pode tentar fazer assim

if  ClientDataSet1.ChangeCount > 0 then
   faz o que tem que ser feito pois houve alteraçoes



GOSTEI 1

Mais Respostas

Raserafim

Raserafim

19/09/2006

esta verificação que vc está fazendo não é para saber se o campo foi alterado, esta propriedade diz se pode ser alterado ou não (somente leitura ou não).

vc deverá fazer esta verificação através do DataSource ao qual o ClientdataSet está ligado, verificando a propriedade State assim:

if DataSource1.State in [dsInsert, dsEdit] then
  ...


ou seja, caso o registro esteja em modo de edição ou inserção.


GOSTEI 0
Adrbrusc

Adrbrusc

19/09/2006

Ok, obrigado...

Mas é que já dei o Post na tabela ou às vezes não precisei pois só foi consulta e ai quando eu sair do formulário eu queria dar um único ApplyUpdate caso houvesse modificações. Por isso estou tentando saber se houveram alterações para este possível ApplyUpdate.

Obrigado


GOSTEI 0
POSTAR