Demora na gravação de dados

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Sergio Cabral
Usuário Nível 2
Usuário Nível 2
Mensagens: 52
Registrado em: 18 Set 2004 18:51
Localização: São José dos Campos

Demora na gravação de dados

Mensagem por Sergio Cabral »

Quando o programa está rodando em XP no momento da gravação dos dados demora muito. Se está em um terminal de rede demora ainda mais. Uso o comando neterr() para gravar e commit e unlock apos a gravação.O que devo fazer?
Sou programador em Clipper 5.01 a 15 anos e procuro melhorar meus conhecimentos. Este site me parece muito bom e poderemos nos ajudar.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Na use o COMMIT e sim o DBCOMMIT()...de uma procurada aqui no forum que esse assunto jah foi debatido.

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Sérgio,

Vc não indicou se você está falando da gravação de 1 campo em um registro ou se é um volume grande de dados...

O que dá pra adiantar:
a) o comando COMMIT força a gravação dos caches de todas as áreas abertas. Ao invés dele, use o DBCommit(), que faz o mesmo só na área de trabalho ativa.
b) vc usa a função NETERR() pra "GRAVAR"? Não entendi. O que essa função faz é só testar se um USE ou APPEND BLANK foram bem sucedidos.

Dê mais informações...
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

De uma olhada tb. no link baixo:
http://www.caclipperwebsite.com/howto/topico01.htm

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 »

Verifique também se voc6e tem uma gravação em lote no mesmo arquivo de dados, como num WHILE ou FOR/NEXT, por exemplo. Eu tenho gravações desse tipo. Às vezes tenho que gravar vários registros, mas dou COMMIT apenas após mandar o último registro. Se fosse emitir um COMMIT pra cada registro, teria o mesmo problema que você. Agora, se você grava em várias áreas, use COMMIT sem dó nem piedade. Ele serve pra isso mesmo. Se alguma área não tiver gravação pendente (buffer), não vai fazer diferença alguma.
[]'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 »

Sergio Cabral, realmente o negocio é migrar para 5.2 ou 5.3 ...ou DBCommit() não funciona no 5.01 se prescissar de algo, ou tiver alguma duvida ...pos aqui que resolvemos !!!


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 »

Só faltou o colega voltar ao tópico e complementar as informações pedidas e/ou dizer se as dicas funcionaram. Qualquer outra coisa que se diga a mais será um mero "chute".
De qualquer forma, o dbCommit() deve funcionar no 5.01. Mas é sempre bom atualizar para uma versão mais recente e mais estável.
[]'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 »

Em MP o colega me disse que o DBCOMMIT() não funcionava no 5.01...mas fiz um pequeno teste aqui... e funciona....!!!

Sergio, Posta sua rotina..pra nos dar uma olhada !!! se quiser te mando tb. os pequeno teste que fiz !!!

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 »

Em MP o colega me disse que o DBCOMMIT() não funcionava no 5.01...mas fiz um pequeno teste aqui... e funciona....!!!
Não vejo por quê não funcionaria, realmente. Muito embora seja aconselhável trocar a versão 5.01 por outra mais recente: 5.2 ou 5.3. E complementado o rol de dicas, seria interessante adicionar um pouco mais de "modernidade" com o BLinker 7. É bem provável que ele ainda utilize o RTLink.

De qualquer maneira, o problema do colega parece estar mais relacionado com lógica. Se ele conseguiu resolveu o problema, melhor. Caso contrário, acabará voltando ao tópico.
[]'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 »

Tche, calma que toh no http://www.google.com.br/ ...vendo se acho algo pra te dizer !!!....
Obs: Toh procurando pra ver o que quer dizer Dicionario !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder