Página 1 de 1
Atualização de arquivos
Enviado: 07 Ago 2007 10:36
por ademilson
Olá Senhores...
Estou com um probleminha na atualização de meus arquivos... está lento demais, estou utilizando de um APPEND FROM, seria o maneira mais correta

? Me Sugerem algo ?
Abraços, Abrigado.
José Ademilson da Cruz
Gerente de programação
SG Sistemas de automação ltda.
Enviado: 07 Ago 2007 10:42
por Pablo César
Eu considero a forma mais simples e dinâmica possível em Clipper. Mas tudo depende como você estaria utilizando-lo, poste seu código ou parte dele para sabermos ao que você se refere.
Enviado: 07 Ago 2007 11:12
por sygecom
Ademilson, Bem Vindo ao Forum...
Tche, Dependendo da quantidade de Registros o Append From...pode ser devagar mesmo....agora foi como o Pablo Falou...é uma maneira facil...agora que tipo de teste vc jah fez ? jah fez dentro de um Laço de DO WHILE ? para ver se tem desempenho melhor?
Abraços
Leonardo Machado
Enviado: 07 Ago 2007 11:17
por Maligno
utilizando de um APPEND FROM, seria o maneira mais correta ?
Acho que o APPEND FROM é o método mais rápido. Agora, se está lento, é por quê se trata de um grande volume de dados. Se for mesmo um grande volume de dados, vai ficar lento mesmo.

Mas quantos registros você está importanto de uma vez? É filtrado? Essa importação é feita sempre?
Enviado: 07 Ago 2007 11:37
por ademilson
Obrigado pelas vindas...
Entao, na realidade como faço:
Tenho um programa que serve como documentador, neste, coloco o campo novo ou quando altero o tamanho do mesmo, denomino de SGDATA.INI, na atualização se a quantidade de campos for diferente ou se tiver algum campos com tamanho diferente, simplesmente, crio um arq. temporario e dou um APPEND FROM no mesmo.
cOldRdd := rddsetdefault("dbfntx") // esta por ntx, porem, nosso sistema eh em cdx, coloquei soh pra ficar igual ao DBU, pois atualizando com ele, eh mais rapido.
__dbapp(old_struc, {},,,,, .f.) //APPEND FROM
rddsetdefault(cOldRdd)
new_struc->(dbclosearea())
Abraços...
Enviado: 07 Ago 2007 11:50
por Maligno
Ah, sim. Agora está explicado. Eu também faço algo semelhante e na maior parte das vezes, altero a estrutura dos arquivos dos clientes. É lento também, mas como faço atualizações esporadicamente, nem me preocupo com isso.
Esse seu esquema de atualização também é utilizado apenas eventualmente. O APPEND FROM, no seu caso, é a forma mais rápida, acredito eu. Claro que, se algum campo mudar de tipo, você terá de interagir manualmente, lendo registro a registro e alterando. Aí sim você vai perceber que o APPEND FROM não é tão lento assim. Até dá pra fazer muito mais rápido, mas aí já sairia do Clipper. Pelo Clipper propriamente, acho APPEND FROM bastante razoável.
Acho que você não tem motivo pra se preocupar. Mas se quiser e tiver um tempo, faça um teste com outras formas: dbEval(), while, etc. Mas devem ficar mais lentos, já que os registros terão de ser acessados um a um.
Enviado: 07 Ago 2007 14:14
por ademilson
OK...
Vc diz que "dá pra fazer muito mais rápido, mas aí já sairia do Clipper", vc esta se refererindo por acaso ao harbour/fivewin ou outra linguagem
Ahhh... aproveitando, estamos migrando parte de nosso sistema para o fivewin, qual seria sua opniao perante a isso?
abraços...
Enviado: 07 Ago 2007 14:36
por Maligno
ademilson escreveu:Vc diz que "dá pra fazer muito mais rápido, mas aí já sairia do Clipper", vc esta se refererindo por acaso ao harbour/fivewin ou outra linguagem

Não quis me extender nisso por quê é algo que nem compensa muito, apesar de ser realmente mais rápido. Fiz há algum tempo um modêlo de atualizador automático de DBFs por meio de C. Como o arquivo é acessado em baixo nível, fica muito mais rápido. Mas não vale a pena, como eu disse. É um serviço feito esporadicamente. Se fosse algo feito freqüentemente, até investiria mais tempo nisso. Mas não é o caso.
Ahhh... aproveitando, estamos migrando parte de nosso sistema para o fivewin, qual seria sua opniao perante a isso?
Minha opinião sobre o FW propriamente não é relevante, já que nem conheço a fundo. Conheço vários outros produtos. Mas isso nem importa tanto. Até porque, como você mesmo disse,
já estão migrando.
Mas eu acho que qualquer passo à frente é sempre uma ótima decisão, seja qual for o caminho escolhido.

Enviado: 09 Ago 2007 12:08
por sygecom
ademilson escreveu:OK...
Ahhh... aproveitando, estamos migrando parte de nosso sistema para o fivewin, qual seria sua opniao perante a isso?
abraços...
Tche, Fivewim é uma execelente LIB grafica...sei que vc já esta migrando ...mas se quiser um exemplo...dos bom em Fivewim me chama no MSN que te envio !!!
Mas só para esclarecer...a eu toh usando a Hwgui e acho ela uma otima LIB grafica...pode ser usada tanto no windows como no linux, e por motivo particulares vou partir para o Fivewim de vez.
Obs:A migração de Clipper para xHarbour/Fivewim é mais rapida que na Hwgui....
Abraços
Leonardo Machado