Dúvida com transfeência de Registro
Estou fazendo um programa de tranferência de um ClientDataSet para outro. É bem simples, eu abro o Primeiro Client, dou um Apend no Segundo e Copio os ddados de Primeiro para o segundo. A cada 1000 Posts, eu executo um Apply no Segundo. Estou calculando o tempo de demora a cada 1000 Registros copiados e este número vai crescendo conforme o número de regsitros aumenta. O que devo fazer para que este número não aumente a cada 1000 tranferências?
Valew
Valew
Seu_madruga
Curtidas 0
Respostas
Sremulador
16/06/2005
já tentou executar a transação, esvaziar a memória...
GOSTEI 0
Seu_madruga
16/06/2005
já tentou executar a transação, esvaziar a memória...
Executar a transação? Não sei fazer isso cara. A única coisa que eu faço quando dou o Apply no Segundo Client, eu fecho ele e abro novamnete para esvaziar o Data mas nem sei se isso resolve. Agora esvaziar a memória não sei, como eu faço isso?
GOSTEI 0
Seu_madruga
16/06/2005
Ninguém?
Alguém já fez este tipo de rotina?
Alguém já fez este tipo de rotina?
GOSTEI 0
Isabelct
16/06/2005
Qual banco de dados você utiliza? Acho que o ideal seria você aplicar o Commit após aplicar o ApplyUpdates, ou seja, a cada 1000 registros, porque assim você esvaziaria o buffer de registros pendentes para alteração, e com isso ganharia um pouco em velocidade.
GOSTEI 0
Seu_madruga
16/06/2005
Qual banco de dados você utiliza? Acho que o ideal seria você aplicar o Commit após aplicar o ApplyUpdates, ou seja, a cada 1000 registros, porque assim você esvaziaria o buffer de registros pendentes para alteração, e com isso ganharia um pouco em velocidade.
Então, mas o ApplyUpdates já não faz um Commit no Banco?
O que eu acho que está acontecendo é que o Primerio Está cheio, com todos os registros, faço a cópia dos registros para o Segundo Client, a cada 1000 eu faço um Apply e continuo a gravação. Mas o Segundo client está ficando cheio e consequentemente mais cheio. Eu preciso de alguma forma que:
1) Transfira 1000 do primeiro para o Segundo
2) Mandar os 1000 regsitros do segundo para o BD
3) Esvaziar o Segundo para receber novamnete 1000 registros
Alguém team alguma idéia do que pode estar ocazionando isso?
GOSTEI 0
Isabelct
16/06/2005
Então, mas o ApplyUpdates já não faz um Commit no Banco?
Não. O único comando capaz de efetivar a gravação de dados no banco de dados é o Commit.
Tente fazer como já lhe sugeri.
GOSTEI 0
Seu_madruga
16/06/2005
[quote:39b76ee6c3=´Seu_madruga´]Então, mas o ApplyUpdates já não faz um Commit no Banco?
Não. O único comando capaz de efetivar a gravação de dados no banco de dados é o Commit.
Tente fazer como já lhe sugeri.[/quote:39b76ee6c3]
Aonde eu dou Commit?
Eu mando uma clausula SQL com a instrução ´COMMIT´ ?
Eu ainda acho que o ApplyUpdates do client já jaz um commit, pois no meu programa, a cada 1000 eu executo um Apply, depois de estar em 5000 regsitros eu derrubei o programa pelo Gerenciador de Tarefas e ao olhar no Banco de Dados, ós 5000 registros estavam lá.
Não tem como eu fazer uma instrução SQL que me traga um número X de registros na ordem do banco. Ex: Me traga os primeiros 100 registros da tabela Z
GOSTEI 0