ClientDataSet1.ApplyUpdates(-1); - Não dá erro mas também não atualiza a tabela

Rogerio Monteiro monteirorama em gmail.com
Sex Dez 11 21:52:37 -03 2009


Olá Colegas.

Utilizo Delphi 7 + Zeos Lib 6.6.2-RC + FB 2.1

Problema:

Tenho um cadastro de modelos de etiqueta, no qual há uma tabela Pai e uma 
tabela Filha.


Para a tabela Pai temos: RPMQuery1 (TZConnection) Nome no FB: MODETIQUETA

Para a tabela Filha temos: RPMQuery1_CDS1 (TZConnection) + DataSetProvider1 
+ ClientDataSet1  Nome no FB: CAMPOSLINHAETIQ

Muito bem, no evento AfterPost de RPMQuery1, há a gravação das alterações 
assim:

 With Form_MenuPrincipal do
      begin
         try
            RPMConexao.StartTransaction;

               // Grava a Tabela Principal (MODETIQUETA)
               RPMQuery1.ApplyUpdates;

               // Grava a Tabela Secundária (CAMPOSLINHAETIQ)
               if (ClientDataSet1.ChangeCount > 0) then
                  ClientDataSet1.ApplyUpdates(-1);   // ----------->>> PASSA 
POR AQUI, ZERA O ChangeCount MAS NÃO ATUALIZA A TABELA.

            RPMConexao.Commit;

      except
         RPMConexao.Rollback;
         raise;
      end;
   end;
   RPMQuery1.CommitUpdates;

Resumindo, após executado os comandos acima, não dá erro, nem exception, 
porém somente a tabela principal (MODETIQUETA) é atualizada, mas a que tem o 
esquema do ClientDataSet não é, apesar de passar pelo comando e o 
changecount de 1 ou 2 vai para 0.

Se alguém puder me dar uma luz, desde já agradeço.

Rogerio. 







Mais detalhes sobre a lista de discussão lista