Página 1 de 2
Tamanho máximo do DBF e Informações LETODB
Enviado: 19 Ago 2009 09:43
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.
Re: Tamanho máximo do DBF.
Enviado: 19 Ago 2009 11:00
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.
Re: Tamanho máximo do DBF.
Enviado: 19 Ago 2009 12:22
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 ?
Re: Tamanho máximo do DBF.
Enviado: 19 Ago 2009 14:10
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.
Re: Tamanho máximo do DBF.
Enviado: 19 Ago 2009 17:17
por carlos_dornelas
Pessoal (Alaminoe Itamar), para que serve mesmo o Leto? Acessar arquivos dbf em um servidor na internet? Éisso?
Antonio Carlos
Re: Tamanho máximo do DBF.
Enviado: 19 Ago 2009 17:32
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/
Re: Tamanho máximo do DBF.
Enviado: 22 Ago 2009 11:02
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.
Re: Tamanho máximo do DBF.
Enviado: 30 Ago 2009 21:38
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 ?
Re: Tamanho máximo do DBF.
Enviado: 31 Ago 2009 00:32
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.
Re: Tamanho máximo do DBF.
Enviado: 31 Ago 2009 01:17
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.
Re: Tamanho máximo do DBF.
Enviado: 31 Ago 2009 19:27
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 ?
Re: Tamanho máximo do DBF.
Enviado: 31 Ago 2009 19:35
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
Re: Tamanho máximo do DBF.
Enviado: 31 Ago 2009 21:09
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 ?
Re: Tamanho máximo do DBF.
Enviado: 31 Ago 2009 21:21
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.
Re: Tamanho máximo do DBF.
Enviado: 01 Set 2009 12:24
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.