Fórum delta do clientdataset #365795

03/11/2008

0

como eu faço para jogar o delta de um clientdataset em outro clientdataset vazio?

nesse cds vazio eu não quero visualizar todos os dados, apenas os dados alterados no outro.


Vitor Rubio

Vitor Rubio

Responder

Post mais votado

05/11/2008

eu consegui fazer!

ao cair a conexão aparece uma opção para o usuario reconectar, e quando ele reconectar, se o changecount > 0 aparece uma form com um dbgrid mostrando onde o usuario estava. (posso fazer isso com o delta ou com o data do cds original)

Nessa tela o usuario tem a opção de salvar ou descartar.

Só que gerou um efeito estranho: se eu usar o delta, além de aparecer as linhas que eu alterei sem estarem alteradas, logo abaixo delas tem linhas só com as alterações feitas. Não sei como mergear isso. Mas se eu não mecher e dar o applyupdates, funciona!

Agora eu precisaria refazer isso, pois fui mudar o meu exemplo de ibx para dbExpress e não salvei a unica versão que funcionou....

valew!


Vitor Rubio

Vitor Rubio
Responder

Gostei + 1

Mais Posts

03/11/2008

Luiz Henrique

Blz vitor^...

if ClientDataSet1.ChangeCount > 0 then
ClientDataSet2.Data := ClientDataSet1.Delta;


Responder

Gostei + 0

04/11/2008

Vitor Rubio

Olá amigo, tentei isso:
  try
    if form1.cdsDetail.ChangeCount > 0 then
      cdsProblema.Data := form1.cdsDetail.Delta;
  except
  end;


mas dá a exception de invalid field type


Responder

Gostei + 0

04/11/2008

Vitor Rubio

eu estou usando master detail e descobri que todo o delta fica no master, então se eu pegar e jogar o delta do master funciona.... só que eu não consigo visualizar o delta do detail.


Responder

Gostei + 0

04/11/2008

Luiz Henrique

Blz Vitor...

Peço desculpas por nao te dar um retorno melhor, fora um acesso no evento DSProvider/BeforeUpdateRecord para tratamento do ID/Tabela para gravação na aplicacao Servidora, nao tenho funçoes que necessitam dados do Delta.
Espero que outro colega te de um retorno melhor.

Esta linha que te passei, é de um exemplo do Guinter que tinha aqui, mas ele usa CDS/Mybase...e so tem esta linha ai no exemplo por sinal.

Abraço


Responder

Gostei + 0

04/11/2008

Vitor Rubio

então, o meu problema é o seguinte:

estou trabalhando com n-tier, e se por motivo de força maior o client se desconectar do server eu gostaria de, quando reconectar, mostrar ao usuario o que ele estava alterando/visualizando no momento, para poder salvar (ou não)


Responder

Gostei + 0

04/11/2008

Luiz Henrique

no caso, voce esta trabalhando com Dataware, isto ? e quer pegar os que foram alterados no cliente e que nao conseguiu persistir ?
Se for isso, na quebra da conexao, voce poderia tbm varrer os componemtes comparando...cds.Fields[X].OldValue com NewValue e obter os alterados. Seria um opcao tbm


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar