O LetoDb é um motor "DAEMON" que funciona com caracterÃsticas similares aos bancos de dados MySQL, Postgree SQL, MSSQL...
Em outras palavras, ele serve de ponte (ligação) entre seu aplicativo e o banco de dados. É para ele que fazemos a requisição dos dados, solicitamos ao DAEMON (motor), os dados, assim sendo não existe mais o tráfego de todos os arquivos pela rede, não precisamos mapear tão pouco compartilhar a pasta, e os perigos dos travamentos(rlock(),flock()) são minimizados. Aumentando assim a velocidade da aplicação que usa DBF.
Baixe o LetoDb da sessão de download aqui do forum.
http://www.pctoledo.com.br/forum/filebase.php?d=1&id=218&c_old=0&what=c&page=1
Primeiro verificar(editar) o arquivo letodb.ini e colocar o DATAPATH de acordo onde se encontra os seus arquivos DBF´s, pode conter subpastas não precisa direcionar para as subpastas apenas para pasta raiz.
Port = 2812
Logfile = "letodb.log"
DEFAULT_DRIVER = CDX
DATAPATH = c:\dados\
ENABLEFILEFUNC = 1
CRYPT_TRAFFIC = 0
PASS_FOR_LOGIN = 0
PASS_FOR_MANAGE = 0
PASS_FOR_DATA = 0
Share_Tables = 0
Cache_Records = 50
[DATABASE]
DataPath = c:\dados\
Driver = CDX
Para instalar o serviço no windows XP ou 7 ou 8 use:
c:>\pasta_com_letodb\letodb install //minusculo mesmo
net start letodb_service
Pronto o letodb está rodando e "apontado" para a pasta onde estão os seus DBF´s apenas faça os ajustes se for CDX ou NTX.
Dica firewall!
Não esquecer de liberar pelo firewall a porta 2812.
1)Dica para acesso externo!
No modem ADSL na opção NAT direcionar a PORTA 2812 para o IP do servidor que está instalado o LetoDB
2)Dica, use um programa gratuito p/ acesso externo!
Use o serviço(programa) www.no-ip.com ou outro melhor para achar seu computador em uma rede WAN.
Testando:
#require "sddodbc" //opcional se for usar MySql com LetoDb
#require "sddfb" //opcional se for usar Firebird com Letodb
#include "rddleto.ch"
REQUEST DBFCDX, DBFFPT, DBFDBT, LETO
REQUEST HB_LANG_PT, HB_CODEPAGE_PTISO, HB_CODEPAGE_PT850
REQUEST SQLMIX, SDDODBC //opcional se for usar MySQL ou Firebird etc...
Function Main
Local cPATH := "//localhost:2812/" //não precisa informar o caminho dos DBF´s porque já foi informado(configurado) no arquivo leotdb.ini
//Conectando com o servidor LetoDb.
nConect := leto_Connect( cPath)
IF nConect == -1
nRes := leto_Connect_Err()
IF nRes == LETO_ERR_LOGIN
alert( "Falha ao Logar" )
ELSEIF nRes == LETO_ERR_RECV
alert( "Error ao conectar" )
ELSEIF nRes == LETO_ERR_SEND
alert( "Erro de envio" )
ELSE
alert( "Não connectado ao servidor: " + cPath )
ENDIF
Return .F.
ENDIF
cIndex := cPATH+"meu_arquivo.cdx"
cDbf := cPATH+"meu_aquivo.dbf"
DbUseArea(.t.,'LETO',cDbf,"alias_xyz",.T.,.F.,'PTISO')
If leto_file(cIndex)
DBSETINDEX( cIndex )
Else
index on ...//seu código
index on ... //seu código
EndIf
E quando compilar sua aplicação, não esquecer de ligar a lib!
Colocar em um arquivo com a extensão letodb.hbc
{win}incpaths=c:\pasta_com_letodb\include;
{win}libpaths=c:\pasta_com_letodb\lib;
{win}libs=rddleto
E no arquivo "seu_projeto.hbp" adicionar a linha:
letodb.hbc
Depois compilar:
:>hbmk2 seu_projeto.hbp
Saudações,
Itamar M. Lins Jr.