Só que nesse caso, vale o que o Jackson falou. Vc só copiou os dados, mas o log das alterações do CDS1 não foi pro CDS2, e daí não tem como identificar as modificações que deverão ser aplicadas.
Outra coisa, tenha cuidado ao fazer uma atualização em massa do jeito que vc disse que está implementando. O mais coerente seria enviar os UPDATEs/INSERTs explicitamente via componente de consulta através de um método ExecSQL(). O motivo disto é que toda vez que vc faz um Post() em um ClientDataSet é um registro que vc vai incluindo em memória. Imagine um processo desse onde vc vai fazer Post em 500.000 registros localmente(em memória) em um ClientDataSet. Se estiver fazendo assim, pode esperar problemas! Sds. ________________________________ To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Fri, 11 Apr 2008 13:43:06 +0000 Subject: [delphi-br] Re: Clonar os dados do ClientDataSet e gravar em banco. Oi Pessoal Sim este segundo ClientDataSet possui um DataSetProvider. O que estou querendo é justamente fugir de um while para gravar linha a linha (isso se houver a possibidade), pois o processo que tenho que fazer tem mais de 500.000 registros. O processo na verdade é ler de uma tabela e gravar em outra, e em alguns casos pode ser ler de uma tabela de um banco para e gravar em outro(MSQLSever, por exemplo), e em alguns casos tenho que ler do SQLServer e gravar em Oracle, a minha idéia é diminuir o tempo de processamento. grato. Wandarlei Michelon Programador Delphi Fone: 55 041 3279-2323 Tree Tools Informática Ltda. - Qualidade e Competência a Seu Alcance http://www.treetools.com.br --- Em delphi-br@yahoogrupos.com.br, Rubem Nascimento da Rocha escreveu > > > Muito bem observado o seu adendo, Jackson! > Sds. > > > ________________________________ > > To: delphi-br@yahoogrupos.com.br > From: [EMAIL PROTECTED] > Date: Fri, 11 Apr 2008 10:09:45 -0300 > Subject: Re: [delphi-br] Clonar os dados do ClientDataSet e gravar em banco. > >> Este segundo ClientDataSet possui um DataSetProvider ou é um ClientDataSet em >> memória que vc usa pra executar algum tipo de processamento extra? > > Acho que mesmo tendo o DatasetProvider, vai precisar de algo a mais. O que > acontece é que ele está fazendo CDS2.Data := CDS1.Data, e essa operação por si > só não informa ao CDS2 que os registros precisam ser inseridos no outro banco, > pois o status de cada linha permanece inalterado. > > Acho que a saída seria procurar alguma forma de informar que cada linha em CDS2 > foi uma linha inserida, mesmo fazendo CDS2.Data := CDS1.Data. > > Caso não haja forma, acho que a saída seria inserir linha por linha mesmo. > > []'s > > Jackson Gomes > Tools&Comps - Controle de Usuários para Desenvolvedores Borland/CodeGear > Web Site: http://www.toolsandcomps.com > Nosso Fórum: http://groups.yahoo.com/group/toolsandcomps > e-mail: [EMAIL PROTECTED] > Fone: 27 3389 1138 - 8811 0324 > ---------------------------------------------------------- > Devhost - Webhost para desenvolvedores Borland > http://www.devhost.com.br > [EMAIL PROTECTED] _________________________________________________________________ Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver offline. Conheça o MSN Mobile! http://mobile.live.com/signup/signup2.aspx?lc=pt-br