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

Responder a