[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