[firebase-br] Rotina / Estouro de Memoria

Rodolpho da Silva Nascimento rnascimento em cmsolucoes.com.br
Sex Set 30 17:28:06 -03 2005


Vc está fazendo a conexão assim, do seu Cds:  IBDatabase => IBDataSet => 
DataSetProvider => ClientDataSet?

Outra coisa bem lembrada pelo nosso colega Augusto, é que, para o 
ApplyUpdates funcionar, vc tem que estar fazendo as alterações na hora, ou 
seja, não basta durante a semana ocorrer diversas atualizações e no final de 
semana vc fazer um SELECT nos dados que vc alterou. O Cds só vai atualizar 
os dados cujo aqueles que foram alterados NELE e não no BD.


T+
Rodolpho





----- Original Message ----- 
From: "Iúri Pereira" <mcsistemas_suporte em yahoo.com.br>
To: "Rodolpho da Silva Nascimento" <rnascimento em cmsolucoes.com.br>; 
"FireBase" <lista em firebase.com.br>
Sent: Friday, September 30, 2005 5:11 PM
Subject: Re: [firebase-br] Rotina / Estouro de Memoria


> Tentei usar esta rotina, exportou (muito rapido por sinal) e carregou o 
> CDS (muito rapido tambem), mas nao consigo executar o ApplyUpdate, ele não 
> aplica nos dados do banco...
>
>
> Rodolpho da Silva Nascimento escreveu:
>
>> 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
>>
>>
>>
>> ______________________________________________
>> 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