Tamanho máximo do DBF e Informações LETODB

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Tamanho máximo do DBF e Informações LETODB

Mensagem por Hasse »

Bom dia colegas.

Para aqueles que ainda duvidam da capacidade do Harbour/xHarbour.
No Fórum do xHarbour, circulou a notícia que um dos usuários alcançou 6.000.000 de registros, sem apresentar qualquer problema, conforme citação abaixo.

A indexação via CDX, em poucos minutos.
Houve relatos antigos sobre o servidor xharbour com tamanhos de arquivos em Terabytes... O Przemyslaw Czerpak fez um excelente trabalho inclusive com RDDs. (texto de David A. Smith)
Eu construí um Dbf, hoje, com mais de 6 milhões de registros de 488 bytes de dados reais. O Visual FoxPro declara que «não é uma tabela", mas xHarbour gosta dela. Para indexá-lo em um campo "val (member_id)" em poucos minutos.
Alguém tentou os limites do xH ?
Comprimento teórico do registro de 16 bits (65535) e o número teórico de registros em 32 bits (4.294.967.295 - mais de 4 bilhões). (Texto de Joe Wright).
E eu com os meus 4 milhões de registros... pobres 4 milhões... humilhação...

É para deitar e rolar.

Só como informação adicional: Na próxima semana completo 3 anos sem qualquer corrupção de arquivos dbf. Servidor e todos os terminais com No Break. Rede Windows Server 2000. Switch de 100 Mb.

Boa sorte e bom trabalho para todos.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Tamanho máximo do DBF.

Mensagem por Itamar M. Lins Jr. »

Testa o acesso aos DBF's com Letodb.
Eu mudei todos os meus clientes para Letodb.
Consigo acessar as bases de qualquer lugar agora, e a velocidade aumenou porque não é mapeado, alias não precisa nem compartilhar a pasta.


Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Tamanho máximo do DBF.

Mensagem por alaminojunior »

Itamar M. Lins Jr. escreveu:Eu mudei todos os meus clientes para Letodb.
Já que você mandou .... vou fazer o mesmo !

Certa vez fiz uns testes com o LetoDB e realmente fica interessante. Eu mandei o executável para o Eolo (Bombinhas-SC) e ele acessou as bases no meu servidor aqui (Ubatuba-SP)
Além de compilar com a lib é necessário rodar o LETO.EXE no servidor, é isso mesmo ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Tamanho máximo do DBF.

Mensagem por Itamar M. Lins Jr. »

É
O letodb com o Harbour do SVN da Erro.
Mas eu quardei uma cópia antes da ativação dos hb_socket*
Estou usando com Harbour SVN , mudei umas coisas na LIB para poder compilar.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: Tamanho máximo do DBF.

Mensagem por carlos_dornelas »

Pessoal (Alaminoe Itamar), para que serve mesmo o Leto? Acessar arquivos dbf em um servidor na internet? Éisso?

Antonio Carlos
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Tamanho máximo do DBF.

Mensagem por alaminojunior »

É para acesso aos DBF´s via socket TCP-IP, sem necessidade de mapear o servidor nos terminais.
Para acessar os dbf´s na internet num provedor, seria necessário rodar o módulo servidor do Leto e claro abrir uma porta, e isso talvez o provedor não queira.
Eis um link com uma explicação legal sobre ele.
http://hmglights.wordpress.com/2009/07/ ... om-letodb/
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Tamanho máximo do DBF.

Mensagem por sygecom »

Realmente o DBF guenta um tranco e tanto, porem todos nós sabemos que hoje em dia, não resolve mais somente capacidade de registros. Hoje em dia é um elenco de exigencias que o mercado vai nós obrigando automaticamente para agente poder se manter ativo e atualizado, é capacidade, segurança, desempenho, facil manuseio e de conhecimento de todos. Quando você fala em DBF para um DBA qualquer as vez o cara nem sabe o que é isso pq só esta acostumado com os SQL da vida, Mysql, PostgreSql, Oracle e etc..., já teve DBA em empresas que visitei que já teve a capacidade de dizer que o DBF era uma extenção do EXCEL, que serve para guardar planilhas e olha que o DBA tinha certificado Oracle e tudo mais. Então podemos ainda dar muito folego para o DBF, mas o uso dos SQL da vida é inevitavel, infelizmente ou felizmente é o nosso mal nescessario.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Tamanho máximo do DBF.

Mensagem por Hasse »

Olá para todos.

Baixei o LetoDb.exe versão 0.9, e estou com problemas !!!!
Vejam o código abaixo:

Código: Selecionar todos

Function Main()
   LOCAL cServerIP:= '//10.0.0.3:2812'
   LOCAL cFile  := '/clipper/datafio/cadastro.dbf'
   LOCAL cConect:= cServerIP + cFile
   REQUEST LETO
   RDDSETDEFAULT("LETO")
   clear
   ?
   ? "testando conexao...."
   IF ( leto_Connect( cConect ) ) == -1
      Alert( 'Nao ha conexão com o Servidor:=;' + cServerIP )
         Return .F.
   ELSE
      Alert( 'Conexao estabelecida com o Servidor:=;' + cServerIP )
   ENDIF
   ? "testando presenca do arquivo:=" + cConect
   IF LETO_FILE( cConect )
      alert("Achou o arquivo:=;" + cConect )
   ELSE
      alert("Nao achou o arquivo:=;" + cConect )
   ENDIF
Return( nil )
Indo por partes:
1-O teste da conexão com o leto_connect(cServerIP) afirma que a conexão está OK.
2-O teste da presença do arquivo com o leto_file(cConect) afirma que ele não existe.
3-Tanto faz, usando:
LOCAL cFile := '/clipper/datafio/cadastro.dbf', ou
LOCAL cFile := '/D:/clipper/datafio/cadastro.dbf' o problema continua.
4-Ao encerrar o programa aparece aquela mensagem do Windows "O Teste.exe encontrou um problema e precisa ser fechado".
5-Imaginando haver alguma incompatibilidade, fiz a atualização do LetoDb pelo CVS, e na hora de compilar aparece o erro:

Código: Selecionar todos

MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
	bcc32 -c -Iinclude;\include -d   -tWM -D__WIN32__ -D__WIN_DAEMON__  -oobj\b32\leto1.obj source\client\leto1.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
source\client\leto1.c:
Error E2257 include\funcleto.h 132: , expected
Warning W8065 source\client\leto1.c 401: Call to function 'hb_setGetDateFormat' with no prototype in function leto_ConnectionNew
Warning W8065 source\client\leto1.c 401: Call to function 'hb_setGetCentury' with no prototype in function leto_ConnectionNew
Warning W8068 source\client\leto1.c 470: Constant out of range in comparison in function letoIsBinaryField
Warning W8012 source\client\leto1.c 470: Comparing signed and unsigned values in function letoIsBinaryField
Warning W8065 source\client\leto1.c 997: Call to function 'hb_setGetDeleted' with no prototype in function letoGoBottom
Warning W8065 source\client\leto1.c 1022: Call to function 'hb_setGetDeleted' with no prototype in function letoGoTo
Warning W8065 source\client\leto1.c 1063: Call to function 'hb_setGetDeleted' with no prototype in function letoGoTop
Warning W8065 source\client\leto1.c 1129: Call to function 'hb_setGetDeleted' with no prototype in function letoSeek
Warning W8065 source\client\leto1.c 1143: Call to function 'hb_setGetDeleted' with no prototype in function letoSeek
Warning W8065 source\client\leto1.c 1291: Call to function 'hb_setGetDeleted' with no prototype in function letoSkipRaw
Warning W8065 source\client\leto1.c 1490: Call to function 'hb_itemPutCLPtr' with no prototype in function letoGetValue
Warning W8065 source\client\leto1.c 2292: Call to function 'hb_setGetDefault' with no prototype in function letoOpenConnection
Warning W8065 source\client\leto1.c 2292: Call to function 'hb_setGetPath' with no prototype in function letoOpenConnection
Error E2342 source\client\leto1.c 2292: Type mismatch in parameter '__src' (wanted 'const signed char *', got 'int') in function letoOpenConnection
Warning W8065 source\client\leto1.c 2307: Call to function 'hb_setGetDefault' with no prototype in function letoOpenConnection
Warning W8065 source\client\leto1.c 2307: Call to function 'hb_setGetPath' with no prototype in function letoOpenConnection
Error E2342 source\client\leto1.c 2307: Type mismatch in parameter 'sSource' (wanted 'const signed char *', got 'int') in function letoOpenConnection
Warning W8065 source\client\leto1.c 2705: Call to function 'hb_setGetAutOpen' with no prototype in function letoOpen
Warning W8065 source\client\leto1.c 2708: Call to function 'hb_setGetAutOrder' with no prototype in function letoOpen
Warning W8065 source\client\leto1.c 2713: Call to function 'hb_setGetAutOrder' with no prototype in function letoOpen
Warning W8075 source\client\leto1.c 3119: Suspicious pointer conversion in function letoOrderCreate
Error E2451 source\client\leto1.c 3960: Undefined symbol 'DBENTRYP_RVVL'
Error E2141 source\client\leto1.c 3960: Declaration syntax error
Error E2190 source\client\leto1.c 3964: Unexpected }
Error E2190 source\client\leto1.c 3964: Unexpected }
Warning W8065 source\client\leto1.c 4130: Call to function 'hb_setGetDeleted' with no prototype in function HB_FUN_LETO_SUM
*** 7 errors in Compile ***
Tentei compilar com várias versões do xHarbour e nada.... Mesmo usando a última 1.2.0-6553.

Alguém pode me ajudar ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Tamanho máximo do DBF.

Mensagem por sygecom »

Olá Hasse,
2-O teste da presença do arquivo com o leto_file(cConect) afirma que ele não existe.
Você esta colocando o ID da conexão e na verdade deveria ser o nome e caminho do arquivo:
Ex:
IF leto_file(cFile)

E sobre a compilação com xHarbour, realmente está dando problemas, tente usar com Harbour que está funcionando perfeito.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Tamanho máximo do DBF.

Mensagem por sygecom »

Olá Hasse,
Com um pequeno ajuste eu consegui compilar o LETODB com xHarbour 1.2.0.
Primeiro confira se seu MAKEFILE já esta habilitado para compilar com xHarbour, para isso edite o arquivo makefile.bc da pasta do LETODB e logo no começo tem uma linha assim:
# XHARBOUR = yes
Para compilar com xHarbour você deve remover o # ex:
XHARBOUR = yes

Depois disso é só fazer uma alteração em SERVER.PRG que esta localizado em: \LETODB\SOURCE\SERVER\
Na linha numero 100, onde tem:
REQUEST HB_CODEPAGE_RU1251
mude para:
REQUEST HB_CODEPAGE_PTISO

Na linha numero 105 onde tem:
#if defined(HB_VER_SVNID) .AND. ( (HB_VER_SVNID - 0) > 11796 )
mude para:
#if defined(HB_VER_SVNID) //.AND. ( (HB_VER_SVNID - 0) > 11796 )

Com essas duas alterações aqui consegui gerar as LIB do LetoDb sem erros.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Tamanho máximo do DBF.

Mensagem por Hasse »

Olá Leonardo.

Esta alteração eu já havia feito.
Para compilar com xHarbour você deve remover o # ex:
XHARBOUR = yes
As demais implantei hoje, mas mesmo assim o problema de compilação do "LetoDb" continua.
Analizando as 2 primeiras linhas do arquivo "make_b32.log" dá a impressão de que algo está errado com o arquivo "leto1.c" ou "letofunc.h", ou seus path's (mais provável), mas os meus conhecimentos não alcançam estes detalhes. Eu já procurei mas nada encontrei.
source\client\leto1.c:
Error E2257 include\funcleto.h 132: , expected
O 'leto1.c' está na pasta "\LetoDb\source\client"
O 'letofunc.h' está na pasta "\LetoDb\include"
Estes path's estão corretos ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Tamanho máximo do DBF.

Mensagem por sygecom »

Olá Hasse,
O caminho dos arquivos estão corretos.
Tente baixar o LETODB do zero. Baixei aqui de novo e com apenas aquelas alterações que postei já compilou sem erros.
Minhas variaveis de ambiente estão assim:

Código: Selecionar todos

SET PATH=%PATH%;D:\DEVEL\BCC55\BIN;D:\DEVEL\BCC55\LIB;D:\DEVEL\BCC55\INCLUDE;D:\DEVEL\xharbour;D:\DEVEL\xharbour\bin;D:\DEVEL\xharbour\lib;D:\DEVEL\xharbour\include
SET INCLUDE=%INCLUDE%;D:\DEVEL\Bcc55\include;D:\DEVEL\xHarbour\include
SET LIB=%LIB%;D:\DEVEL\Bcc55\lib;D:\DEVEL\xHarbour\lib
SET HB_PATH=D:\DEVEL\XHARBOUR
E estou usando o xHarbour 1.2.0 que foi baixado do SourceForge
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Tamanho máximo do DBF.

Mensagem por Hasse »

Beleza, Leonardo !!! ...

PERFEITO. A compilação funcionou... E olhe que eu já havia feito isto umas 3 vezes, pelo menos. VALEU. Obrigado.

A mensagem de erro do Windows não aparece mais.

Os atuais problemas são:

1-Esta função continua informando que a conexão está OK.
IF ( Leto_Connect( cConect ) ) == -1
2-O Manage.exe informa que a conexão está ativa.

3-O "Status da Conexão Local" do Windows informa que há atividade e o valor de bytes recebidos e enviados informa constante progresso nos 2 computadores. Basta comandar o "LetoDb stop" ou parar a conexão via "manage.exe" que o tráfego também para.

4-Esta função continua informando que o arquivo não foi encontrado:
IF Leto_File( cFile )
5-Para a variável 'cFile' acima eu testei as seguintes opções:
LOCAL cFile := 'I:/clipper/datafio/cadastro.dbf'
LOCAL cFile := '/clipper/datafio/cadastro.dbf'
LOCAL cFile := 'clipper/datafio/cadastro.dbf'
LOCAL cFile := '//10.0.0.3:2812/clipper/datafio/cadastro.dbf'
LOCAL cFile := '//10.0.0.3:2812/I:/clipper/datafio/cadastro.dbf'
6-Tentei o "USE" e o "DbuseArea()" que também não abrem o arquivo, usando a mesma variável 'cFile'.

7-Eu imagino que não haja necessidade de rodar o LetoDb do lado do terminal, mas tentei isto também.

Ainda há um erro, mas ONDE ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Tamanho máximo do DBF.

Mensagem por sygecom »

Olá Hasse,
1-Esta função continua informando que a conexão está OK.

IF ( Leto_Connect( cConect ) ) == -1
Na verdade sua variavel: cConect está errada. Ela esta assim:
LOCAL cServerIP:= '//10.0.0.3:2812'
LOCAL cFile := '/clipper/datafio/cadastro.dbf'
LOCAL cConect:= cServerIP + cFile

Deveria ficar apenas assim:
LOCAL cServerIP:= '//10.0.0.3:2812'
LOCAL cFile := '/clipper/datafio/cadastro.dbf'
LOCAL cConect:= cServerIP
Por questão dessa variavel esta errada, o resto é consequencia.
Veja o exemplo do link abaixo, acretido que vai lhe ajudar:
http://www.4shared.com/file/68299243/67 ... hwgui.html
7-Eu imagino que não haja necessidade de rodar o LetoDb do lado do terminal, mas tentei isto também.
Não prescisa mesmo, basta deixar ele ativo como serviço no lado do servidor e pronto.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Tamanho máximo do DBF.

Mensagem por Itamar M. Lins Jr. »

Não se esqueça que existe o arquivo letodb.ini. É lá que configuramos algumas coisas.
O LetoDb já funciona com MSVC 9 e o Harbour do SVN.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder