TBROWSE/0: Limit exceeded - Alguma sugestão?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

sandata
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 12 Fev 2009 17:54
Localização: Santos, SP

TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por sandata »

Prezados, recorro novamente a este competente forum, no intuito de descobrir a possível causa de uma mensagem de erro TBROWSE/0: Limit exceeded, que ocorre às vezes na tentativa de abrir um arquivo DBF com o Tbrowse. No caso, isto ocorre com registros com larguras tipicamente maiores que 1 kB, podendo o tamanho limite variar conforme a máquina. A funcao Dbedit() manipula os mesmos arquivos sem problemas.

Estou utilizando o Clipper 5.2e com Rtlink e máquinas com Win XP e Vista. Será que alguém já se deparou com o problema e/ou tem albuma pista quanto a encontrar uma possível solução?
Jan Lund
Sandata Ltda.
Santos, SP
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á

TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por Pablo César »

Oi Jan,

Só não entendí quando você menciona: "com registros com larguras tipicamente maiores que 1 kB" você quis dizer campos em lugar de registros ? Seria o tamanho de tamanho exagerado ? Poderia listar a estrutura do seu BD, de ser possível disponibilizar um ou dois registros exemplos e seria também legal ver seu código fonte, talvez possua algum erro e daí não tem como saber.
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.
sandata
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 12 Fev 2009 17:54
Localização: Santos, SP

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por sandata »

Olá! Em um dos casos, por exemplo, trata-se de um arquivo com 69 campos de tipos e tamanhos variados, totalizando 1160 bytes. Em outro caso (o problema ocorre em outra máquina), é um arquivo com 53 campos totalizando 2192 bytes. Antes de acrescentar os últimos campos, não havia problema nenhum. Não há, em nenhum deles, campos do tipo MEMO.
Jan Lund
Sandata Ltda.
Santos, SP
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por alxsts »

Ólá!

Imagino que isso seja um problema de falta de memória. Tenho quase certeza de que link-editando com Blinker vai resolver o problema.

Leia o artigo CA-CLIPPER 5.x Memory Management. Precioso...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por sygecom »

É como disse o colega acima, o Blinker as vez resolve problemas básicos. O uso do Blinker é indispensável com Clipper.
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

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por Maligno »

Uma dica ao colega: quando ocorrer erros pontuais e estranhos desse tipo, crie um sistema minimalista, a fim de isolar o ponto onde o erro ocorre. Remova todos os PRGs, incluindo apenas aquele onde o erro ocorre. Isso, claro, depois de refazer o que puder ser refeito: índices e se for o caso, recriando a estrutura dos bancos de dados envolvidos e importando os dados do DBF em suspeição. Erros em estruturas de DBFs pode ocasioar erros bem estranhos. Se depois desse artifício o erro não ocorrer, vá reinserindo os demais PRGs no projeto, até ele voltar a ser o que era.

O uso do BLinker é sempre o mais sugerido para o uso com o Clipper. Por questão de segurança e conforto. Mas ele não faz milagres. Pode resolver o problema? Pode ser que sim, pode ser que não. É pura especulação. Erros estranhos sempre nos levam à pratica da tentativa e erro. Como não custa tentar,... Tente o que julgar que seja mais fácil e rápido.
[]'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!
sandata
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 12 Fev 2009 17:54
Localização: Santos, SP

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por sandata »

Esclarecendo um pouco mais a questão, trata-se de um programa realmente pequeno, na verdade é só um substituto do DBU.EXE para manipular e preparar / alterar os arquivos de dados. No caso não se trata de arquivos corrompidos, visto que os mesmos operam normalmente nos sistemas a que pertencem. O problema só se manifesta na função Tbrowse.

Fiz alguns testes com o Blinker, com resultados um pouco melhores, com memória livre um tanto maior (memory()). Por exemplo, no Win XP e Rtlink abro normalmene um arquivo com 53 campos e largura de registro de 2192 B. Já outro com 32 campos e largura de 2464 B não abre, apresentando o erro. Com o Blinker o de 32 campos com 2464 B abre e outro de 41 campos com 2745 B apresenta o erro. No Vista os resultados são semelhantes, mas com limites menores: 57 campos com 967 B abre, 69 campos com 1160 não abre, isto com o Blinker.
Jan Lund
Sandata Ltda.
Santos, SP
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por sygecom »

se é um utilitario pequeno Por que não compila logo com Harbour isso !
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

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por Maligno »

No caso não se trata de arquivos corrompidos, visto que os mesmos operam normalmente nos sistemas a que pertencem.
Pode parecer muito estranho, mas já vi caso de DBF corrompido de forma tão sutil que funcionava perfeitamente em um sistema e em outro, semelhante, apresentava erro. Por isso sugeri recriar o DBF. Agora, índice pode sempre ser refeito a qualquer tempo. Se é que já não recriou.
[]'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!
sandata
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 12 Fev 2009 17:54
Localização: Santos, SP

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por sandata »

Olá! Tentarei resumir: Com o Blinker, "brincando" com as opções, passei de cerca de 160 kB para 265 kB de memória livre [memory(0)]. Não fez diferença quanto ao limite de ocorrência do erro. Quanto a um erro de corrupção, os mesmos arquivos abrem numa máquina (XP) e não em outra (Vista), além de funcioanr sem problemas no sistema prórprio. Na ferramenta citada o arquivo é aberto inicialmente sem INDEX, assim esta influência está a meu ver descartada. E, não se trata de um único arquivo.

Quanto ao Harbour, é claro que já me ocorreu, Mas, o problema é que há muitas funções principalmente do Clipper Tools que não possuem contrapartida no Harbour (ou no xHarbour). Estas necessitariam de um profundo retrabalho, visto que utilizo uma rede bastante complexa de funções de biblioteca construída ao longo dos últimos vinte anos.
Jan Lund
Sandata Ltda.
Santos, SP
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por ANDRIL »

A pouco tempo atrás, passei pelo mesmo problema. Meu sistema funcionava normalmente, fiz algumas implementações e do nada começou a dar este erro, porem, nao uso TBROWSE e sim o DBEDIT.

O erro acontecia quando chamava um DBEDIT dentro do outro, até achei que era problema de limite de pilha, memoria etc, mais já usava o BLINKER em modo PROTEGIDO.

Depois de muito, muito mesmo vasculhar acabei descobrindo o que ocasionava o erro, e não tinha nada, mais nada teoricamente ligada ao DBEDIT.

Usava neste mesmo sistema o WAPI.LIB do nosso colega MALIGNO nunca havia dado problema algum. Para contornar o problema visto que necessito da WAPI parei de usar a LIB e chamei o EXE direto, O PROBLEMA ACABOU.

Alem das alterações que tinha feito no sistema (nada de anormal), cito que houve uma queda de energia no micro onde programo e suspeito que tenha sido gravado algo estranho nos fontes que o compilador nao detecta. Isso ja tinha acontecido antes, dentro de um PRG achei uma linha contendo:

Código: Selecionar todos

  endif   DDDDDDDD
O estranho é compilava normalmente sem acusar erro algum, achei isso meio por acaso.

Resumindo, onde parece ser o erro, pode não ter nada haver. Sei que é dificil criar um sistema somente com a parte do erro para testar, pois há as depedencias (funcoes, variaveis e etc) que não ajudam muito então vasculhe tudo.

Desejo-lhe sorte!
Abraços
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
sandata
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 12 Fev 2009 17:54
Localização: Santos, SP

Re: TBROWSE/0: Limit exceeded - Alguma sugestão?

Mensagem por sandata »

Agradeço o esforço de quem se dispôs a contribuir com a solução da questão abordada. Assim que tiver um "tempinho" sobrando, tentarei aprofundar mais o exame do problema, por minha conta com base nas idéias acima publicadas.
Jan Lund
Sandata Ltda.
Santos, SP
Responder