Usando LetoDbf

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

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

Usando LetoDbf

Mensagem por Itamar M. Lins Jr. »

Olá!

Levarei em consideração que a pessoa está usando o hbmk2 do Harbour e tem o git instalado.

Primeiro vamos pegar o LetoDb[f] do Elch.

Código: Selecionar todos

itamar@itamar-desktop:~/dev$ git clone https://github.com/elchs/LetoDBf.git LetoDBf
Cloning into 'LetoDBf'...
remote: Enumerating objects: 2658, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 2658 (delta 1), reused 3 (delta 1), pack-reused 2652
Receiving objects: 100% (2658/2658), 2.18 MiB | 669.00 KiB/s, done.
Resolving deltas: 100% (2087/2087), done.
No LINUX porque no WINDOWS é a mesma coisa.
c:\dev\>git clone https://github.com/elchs/LetoDBf.git LetoDBf

Segundo vamos GERAR a LIB que é LINKADA junto com os nossos PRG's (aparecem alguns warnings no GCC 10.3) eu removi.

Código: Selecionar todos

itamar@itamar-desktop:~/dev/LetoDBf$ hbmk2 rddleto.hbp
itamar@itamar-desktop:~/dev/LetoDBf$ ls lib
librddleto.a
itamar@itamar-desktop:~/dev/LetoDBf$ 
No windows é a mesma coisa:
c:\dev\letodbf\hbmk2 rddleto.hbp
Vai criar a LIB na pasta lib\librddleto.a

Terceiro vamos criar(compilar) o SERVIDOR LetoDb[f], No Linux e também no Windows o mesmo comando.

Código: Selecionar todos

itamar@itamar-desktop:~/dev/LetoDBf$ hbmk2 letodbsvc.hbp 
Vai criar o servidor LETODB.EXE na pasta BIN (LINUX não tem a extensão .exe)

Windows mesmo comando -> HBMK2 LETODBSVC.HBP
Vai criar dentro da pasta BIN\ -> c:\dev\letodbf\bin\letodb.exe

PRONTO ! Primeira ETAPA concluída.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
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

Usando LetoDbf

Mensagem por Itamar M. Lins Jr. »

Olá !
Segunda parte!
Agora vamos configurar o SERVIDOR letodb.exe
Editamos o arquivo letodb.ini para CERTIFICAR que ele vai CONSEGUIR VER a pasta RAIZ onde estão os DBF's
Por exemplo, vamos supor que os DBF's estejam na pasta RAIZ C:\DataBase e que esta pasta tenha varias subpastas C:\DataBase\Data2020, C:\DataBase\Data2021...

Então editarei o letodb.ini na CHAVE DataPath:

Código: Selecionar todos

DataPath = /mnt/sun/PRO-CNC/DATEN
Para:
No Windows:

Código: Selecionar todos

DataPath = C:\DataBase 
No Linux:

Código: Selecionar todos

DataPath = /DataBase 
Isso é fundamental sem essa PRIMEIRA configuração o LETODB não VAI INICIAR. Precisa da pasta de fato existir.
As subpastas são VISTAS automaticamente pelo LETODB.

Instalando o servidor LetoDB
No Linux:

Código: Selecionar todos

itamar@itamar-desktop:~/dev/LetoDBf/bin$ sudo ./leto.sh
LetoDB runs
No Windows: ATENÇÃO que precisa ser ADMINISTRADOR. Pq é um serviço que ficará instalado no registro.
c:\dev\letodbf\bin\letodb install

Conectando com o servidor
Agora vamos conectar com o servidor.

Código: Selecionar todos

REQUEST LETO, DBFCDX
#include "dbinfo.ch"
#include "rddleto.ch"

FUNCTION MAIN
RDDSETDEFAULT( "LETO" )
cPath := "//127.0.0.1:2812/"
IF leto_Connect( cPath, /*user*/, /*pass*/, nTimeOut /*timeout*/, nHotBuf /*hot buffer*/ ) == -1
         ALERT("Servidor LetoDb não foi encontrado: " + leto_Connect_Err( .T. ) )
         QUIT
ENDIF
...
COMPILAR indique onde está o letodb.hbc
hbmk2 meu_teste.prg \dev\letodbf\letodb.hbc

No nosso PRG no comando USE colocamos:

Código: Selecionar todos

use estoque.dbf new shared
use clientes.dbf new shared
Atenção ! Não colocar

Código: Selecionar todos

use c:\database\estoque.dbf new shared 
//ou na pasta que não precisa mais estar compartilhada.
use f:\database\estoque.dbf new shared 
vai dar erro de abertura.
E no caso de abrir a subpasta(subdir) coloque apenas a subpasta,

Código: Selecionar todos

 use Data2020\estoque.dbf new shared
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
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

Usando LetoDbf

Mensagem por Itamar M. Lins Jr. »

Olá!
Outras dicas.
Parar o servidor no windows.

Código: Selecionar todos

net stop letodbf_service
Iniciar o servidor no windows

Código: Selecionar todos

net start letodbf_service
Remover o Letodbf da maquina windows

Código: Selecionar todos

sc delete letodbf_service
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Ivone Lopes da Silva
Colaborador
Colaborador
Mensagens: 80
Registrado em: 23 Out 2004 21:57
Localização: São João da Boa Vista/SP
Curtiram: 1 vez

Usando LetoDbf

Mensagem por Ivone Lopes da Silva »

Obrigada.

Eu já tinha conseguido fazer a conexão e testes com DBF utilizando as postagens do fórum (são muitas), mas com o tutorial vai facilitar muito para quem estiver começando a estudar o assunto e também para quem tem pouca experiência.
Bom dia
Avatar do usuário
RamonXHB
Usuário Nível 3
Usuário Nível 3
Mensagens: 159
Registrado em: 03 Mar 2007 14:55

Usando LetoDbf

Mensagem por RamonXHB »

Boa tarde.

Fiz uma tradução do Manual do LetoDBF do Elch, não sou usuário do mesmo, mas se puder facilitar para alguém, bom proveito !!!
Anexos
Manual LetoDBF em Português - By Elch.pdf
(959.29 KiB) Baixado 472 vezes
Ramon A. Körber Jr.
Harbour 3.2 MiniGUI Extended Edition
xDevStudio v0.70 - BCC 5.82 - Lazarus FreePascal
Firebird
AdoDB - ODBC
Windows - Linux
Linux User Number 404280
MSN - ramon15061959@hotmail.com
Skype - ramon15061959
ICQ - UIN 82580595
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Usando LetoDbf

Mensagem por Alexandre Silva »

Entao,,,
Ao tentar criar a lib e gerar o letodb.exe estou tendo esse erro
Erro: Executando compilador C/C++. 1

Como proceder ?

Código: Selecionar todos

D:/LetoDBf-master/source/client/leto1.c:7845:20: warning: assignment makes pointer from integer without a cast [enabled by default]
D:/LetoDBf-master/source/client/leto1.c:7848:20: error: 'DBI_TRANSREC' undeclared (first use in this function)
D:/LetoDBf-master/source/client/leto1.c:7861:66: error: 'DBTF_CPYCTR' undeclared (first use in this function)
D:/LetoDBf-master/source/client/leto1.c: In function 'HB_FUN_LETO_DBJOIN':
D:/LetoDBf-master/source/client/leto1.c:8284:10: warning: implicit declaration of function 'hb_rddFindDrv' [-Wimplicit-function-declaration]
D:/LetoDBf-master/source/client/leto1.c:8284:19: warning: assignment makes pointer from integer without a cast [enabled by default]
D:/LetoDBf-master/source/client/leto1.c: In function 'HB_FUN_LETO_DBUPDATE':D:/LetoDBf-master/source/client/leto1.c:8695:13: warning: implicit declaration of function hb_itemCompare' [-Wimplicit-function-declaration]hbmk2[rddleto]: Erro: Executando compilador C/C++. 1
D:\hb32\comp\mingw\bin\gcc.exe -c -O3 -march=i586 -mtune=pentiumpro -fomit-frame-pointer  -DUSE_PMURHASH=1 -DUSE_LZ4=1 -W -Wall -pipe -ID:/hb32/include -I"
D:/LetoDBf-master/include" -I"D:/LetoDBf-master/source/3rd/lz4/lib" C:/Users/PC/AppData/Local/Temp/hbmk_4dvtga.dir/rddsys.c "
D:/LetoDBf-master/source/client/letocl.c" "
D:/LetoDBf-master/source/client/leto1.c" "
D:/LetoDBf-master/source/client/letomgmn.c" "D:/LetoDBf-master/source/common/blowfish.c" "D:/LetoDBf-master/source/common/common_c.c" 
"D:/LetoDBf-master/source/3rd/lz4/lib/lz4.c" "D:/LetoDB
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
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

Usando LetoDbf

Mensagem por Itamar M. Lins Jr. »

Olá!
Como proceder ?
(aparecem alguns warnings no GCC 10.3)
Se seguiu o tutorial a risca, não dá esse erro.
Informe sua versão de GCC, e qual é seu Harbour. Use a versão que manda o tutorial. Da versão 7 até a 10.3 deverá funcionar.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Usando LetoDbf

Mensagem por Alexandre Silva »

Show de bola, Muito Obrigado !!
Atualizei o Harbour e compilei a lib e o letodb, sem mensagens..
Esta funcionando..
Agora estou tendo que adaptar o caminhos..
tenho muitos arquivos locais,mas alguns em outras pastas...

É muito comum meus sistemas ter arquivos locais e alguns numa pasta acima.. nao abaixo
exemplo
c:\matriz que usa arquivos das filiais
c:\filial1
c:\filial2

Entao pelo jeito vou ter que definir o path como c:\ e tratar todos como subpastas...?

Outra coisa No arquivo.ini qual diferença desses 2 PATH ?
DATAPATH = C:\TESTE\
..
..
[DATABASE]
DataPath = D:\TESTE\
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
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

Usando LetoDbf

Mensagem por Itamar M. Lins Jr. »

Olá!
Entao pelo jeito vou ter que definir o path como c:\ e tratar todos como subpastas...?
Agora precisa corrigir.
Coloque tudo em uma pasta(diretório) com outros subdiretórios.
Colocar em c:\ o LetoDB para enxergar não é aconselhável, e pode degradar a performance.
Até para backup é melhor. Ficar espalhando tudo em pastas na raiz não é organizado.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

Usando LetoDbf

Mensagem por carlaoonline »

Bom dia!
Alexandre Silva escreveu:Outra coisa No arquivo.ini qual diferença desses 2 PATH ?
A princípio, as referências apontam que o primeiro é o caminho do banco de dados DBF e o segundo seria para trabalhar em conjunto com um Servidor Samba. No meu caso, que não uso SMB_SERVER, deixo desabilitado e funciona perfeito.
Responder