Atualização de arquivos

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Atualização de arquivos

Mensagem 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.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem 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...
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ademilson
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 07 Ago 2007 10:01
Localização: Maringá
Contato:

Mensagem 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...
_____________________
José Ademilson da Cruz
Gerente de Desenvolvimento Harbour
SG Sistemas de Automação ltda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder