[firebase-br] Rotina / Estouro de Memoria

Rodolpho da Silva Nascimento rnascimento em cmsolucoes.com.br
Sex Set 30 10:00:56 -03 2005


Iuri,

  Prq vc não trabalha usando ClientDataSet?
 Vou dizer à vc o que eu faria no seu caso.
 Na matriz, ao fazer uma moficação no BD para refletir a mesma modificação 
em todas as bases, eu faria um SELECT na tabela (Exemplo PRODUTOS) e 
carregaria os dados desejados para um ClientDataSet. Neste ClientDataSet, eu 
iria fazer as minhas inserções, alterações e deletar os registros que eu 
quiser e na hora em que eu terminasse, eu salvaria o DataPacket (é o pacote 
de dados contendo todas as alterações feitas no ClientDataSet) usando o 
método ClientDataSet.SaveToFile('C:\MeuCds.cds')  e levaria o mesmo para as 
filiais. Chegando lá, se as chaves dos registros forem as MESMAS da matriz, 
eu apenas carregaria o meu ClientDataSet (LoadFromFile('C:\MeuCds.cds') ) e 
apenas aplicava um ClientDataSet.ApplyUpdates(0) no BD que ele iria fazer 
todas as alterações no ClientDataSet no no BD.  Se as chaves dos registros 
NÃO forem as mesmas da matriz, eu filtraria os registros pelo seu status 
(ClientDataSet.StatusFilter := [usDelete] ou [usInserted] ou [usModified]) e 
faria uma varredura no ClientDataSet, aplicando as alterações de acordo com 
indispensável.

Esperto tê-lo ajudado
T+
Rodolpho




----- Original Message ----- 
From: "Iúri Pereira" <mcsistemas_suporte em yahoo.com.br>
To: "lista - firebase" <lista em firebase.com.br>
Sent: Friday, September 30, 2005 9:03 AM
Subject: [firebase-br] Rotina / Estouro de Memoria


Pessoal,

já estou com um problema (grande) a algum tempo, e não encontrei nenhuma
solução ainda, então se alguem poder me dar alguma ajuda ou ideia
ficaria muito grato.

a matriz envia um arquivo(txt) para as filiais com todos os produtos
cadastrados novos e alterados em um determinado periodo, esse txt é
gerado em forma de insert.

hj faço o seguinte, dou um insert desses registros em uma tabela
temporaria no firebird, depois disso faço uma rotina de sincronia, se
achou da um update se não da um insert, so que usando o componente IBX
no Delphi 7 esta ocasionando estouro de memoria.

Pergunto o seguinte,
como vcs fazem esse tipo de processo em seus aplicativos ?

nesse caso não teria uma solução mais viavel e rapida como um procedure
dentro do banco ou algo assim ?

Obrigado,
Iúri Pereira


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa






Mais detalhes sobre a lista de discussão lista