LetoDb e Harbour, como usar.
Moderador: Moderadores
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
Prezados...
Estou implementando o LetoDB, consegui compilar, gerar as libs, tanto para MinGw, como para Minigui Extended (pois tenho 2 projetos, um console e outro Gui), mas estou me TRAVANDO no FILE(), configurei no letodb.ini, EnableFileFunc = 0, portanto não estou usando leto_FILE, mas insiste em dizer que a tabela tal, não existe...minha tabela se chama ADMIN.ADM, dai também configurei no letodb.ini, EnableAnyExt = 1, o que mais tenho que fazer... segui os passos e parei aqui... portanto, peço ajuda...
F.Freire
Estou implementando o LetoDB, consegui compilar, gerar as libs, tanto para MinGw, como para Minigui Extended (pois tenho 2 projetos, um console e outro Gui), mas estou me TRAVANDO no FILE(), configurei no letodb.ini, EnableFileFunc = 0, portanto não estou usando leto_FILE, mas insiste em dizer que a tabela tal, não existe...minha tabela se chama ADMIN.ADM, dai também configurei no letodb.ini, EnableAnyExt = 1, o que mais tenho que fazer... segui os passos e parei aqui... portanto, peço ajuda...
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
O engraçado é que retiro o FILE...e dou sequencia...ele abre o arquivo ADMIN.ADM, pois vejo no manager, que esta aberto, mas não funciona se checar se o arquivo existe...segue como estou fazendo...
Aqui ele da msg que o arquivo não existe !!
Mas aqui abre o arquivo normalmente
O arquivo letodb.ini (que esta na pasta, onde esta o letodb.exe)
Aqui ele da msg que o arquivo não existe !!
Código: Selecionar todos
// onde _PathAdm = "//127.0.0.1:2812/"
IF !FILE( _PathAdm + 'ADMIN.ADM' )
TONE( 321, 2 )
MSGBOX1( 'Arquivo Admin.ADM nÆo existe !!!', 'Erro...',,'&OK' )
RETURN( .F. )
END
Código: Selecionar todos
// na função NETUSE... esta ajustado para o leto ser o RDD
IF !NETUSE( _PathAdm + 'ADMIN.ADM', 'Adm', SHARE )
MSGBOX1( Erro na abertura do arquivo...', 'Erro...',,'&OK' )
RETURN( .F. )
END
F.Freire[Main]
; server port number;
Port = 2812
; connection timeout;
; TimeOut = -1
; path to a data directory on a server;
DataPath = c:\teste
; path and name of a log file;
Logpath = letodb.log
; default RDD to open files on server ( CDX/NTX );
Default_Driver = CDX
; memo type ( FPT/DBT ). Default: FPT for DBFCDX, DBT for DBFNTX;
; Memo_Type = FPT
; if 1, convert all paths to lower case;
Lower_Path = 0
; if 1, using of file functions ( leto_file(),
; leto_ferase(), leto_frename() is enabled;
EnableFileFunc = 0
; if 1, creating of data tables and indexes with
; any extention, other than standard ( dbf,cdx,ntx )
; is enabled;
EnableAnyExt = 1
; if 1, user authentication is necessary to
; login to the server;
Pass_for_Login = 0
; if 1, user authentication is necessary to
; use management functions ( Leto_mggetinfo(), etc. );
Pass_for_Manage = 0
; if 1, user authentication is necessary to
; have write access to the data;
Pass_for_Data = 0
; the path and name of users info file;
; Pass_File = "leto_users"
; if 1, the data passes to the network encrypted;
; Crypt_Traffic = 0
; if 0 (default, this mode server was the only from the
; start of a letodb project), the letodb opens all
; tables in an exclusive mode, what allows to increase
; the speed. If 1 (new mode, added since June 11, 2009),
; tables are opened in the same mode as client
; applications opens them, exclusive or shared, what
; allows the letodb to work in coexistence with other
; types of applications.
Share_Tables = 1
; The number of records to read into the cache
; Cache_Records = 10
; Maximum number of shared variables
; Max_Vars_Number = 10000
; Maximim size of a text variable
; Max_Var_Size = 10000
; Global function letodb RDDI_TRIGGER
; Trigger = <cFuncName>
; Global function letodb RDDI_PENDINGTRIGGER
; PendingTrigger = <cFuncName>
; Number of tables
; Tables_Max = 5000
; Number of users
; Users_Max = 500
; Debug level
; Debug = 0
; if 1, SET HARDCOMMIT OFF
; Optimize = 0
; SET AUTORDER setting
; AutOrder = 0
; _SET_FORCEOPT setting
; ForceOpt = 0
;[DATABASE]
Datapath = c:\teste
driver = cdx
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
LetoDb e Harbour, como usar.
Está correto.
File() não vai funcionar mesmo.
use: ENABLEFILEFUNC = 1, IF !LETO_FILE( _PathAdm + 'ADMIN.ADM' )
Se está no mesmo servidor use: FILE("c:\teste\admin.adm") sem o IP.
Saudações,
Itamar M. Lins Jr.
File() não vai funcionar mesmo.
use: ENABLEFILEFUNC = 1, IF !LETO_FILE( _PathAdm + 'ADMIN.ADM' )
Se está no mesmo servidor use: FILE("c:\teste\admin.adm") sem o IP.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
Mas ja usei leto_file, da forma que vc colocou e também não funciona...habilitando EnableFileFunc = 1 em letodb.ini....
Ou tenho que quando for localhost...usar o caminho (c:\teste\...) para checar se o arquivo existe, e quando os dados estiverem em outra maquina/ip...dai posso usar o ip...é isso ?
Ou tenho que quando for localhost...usar o caminho (c:\teste\...) para checar se o arquivo existe, e quando os dados estiverem em outra maquina/ip...dai posso usar o ip...é isso ?
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
LetoDb e Harbour, como usar.
Não.
Leto_File("//127.0.0.1:2812/adm.adm") tem que funcionar ai. Aqui funciona muito bem.
Aqui eu uso toda hora, e funciona.
Onde está o arquivo 'ADMIN.ADM' ?
O Leto só enxerga onde estiver configurado o arquivo.
; path to a data directory on a server;
DataPath = c:\teste
Coloque mais uma barra: DataPath = c:\teste\
E teste p/ ver se é isso.
Saudações,
Itamar M. Lins Jr.
Leto_File("//127.0.0.1:2812/adm.adm") tem que funcionar ai. Aqui funciona muito bem.
Aqui eu uso toda hora, e funciona.
Onde está o arquivo 'ADMIN.ADM' ?
O Leto só enxerga onde estiver configurado o arquivo.
; path to a data directory on a server;
DataPath = c:\teste
Coloque mais uma barra: DataPath = c:\teste\
E teste p/ ver se é isso.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
Nobre colega...
Batendo muita cabeça ainda com o Letodb...
Eu notei que onde esta o letodb.exe, é gerado um arquivo de log... dai percebi que quando carrego o serviço do leto... ele grava o seguinte no log...
Se esta configurado DataPath = C:\FF\ e também ShareTables=1... pq esta lendo em branco e 0... onde tem que ficar o letodb.ini ??
F.Freire
Batendo muita cabeça ainda com o Letodb...
Eu notei que onde esta o letodb.exe, é gerado um arquivo de log... dai percebi que quando carrego o serviço do leto... ele grava o seguinte no log...
Veja que o DataPath, esta em branco... mas no letodb.ini esta configurado C:\FF\, dai não entendi nada, o letodb.ini, esta no mesmo diretório do letodb.exe...04/09/15 20:45:00: Leto DB Server has been started.
Leto DB Server v.2.15 ! INIT: DataPath=, ShareTables=0, MaxUsers=500, MaxTables=5000, CacheRecords=10
04/09/15 20:45:00: C:\FFSoft\DESENV\hmg\letodb\bin\letoudf.hrb has been loaded.
Se esta configurado DataPath = C:\FF\ e também ShareTables=1... pq esta lendo em branco e 0... onde tem que ficar o letodb.ini ??
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
Outra dúvida....
Porque assim funciona...
e assim não...dá ERROR LETO/1001 Função indefinida
Os 2 códigos no mesmo sistema...portanto, tudo que carrega para um, carrega para o outro...
To ficando mais careca do que ja sou !!!! kkkk
F.Freire
Porque assim funciona...
Código: Selecionar todos
x := leto_udf("UDF_CRIPTO",Nome,"R")
ALERT(X)
Código: Selecionar todos
zLetoDB := //127.0.0.1:2812/
_Chave := 'LETO_UDF("UDF_CRIPTO",Nome,"R")'
_Tag := ALLTRIM( (_ANtx)->Tag )
_NomeInd := zLetoDB+"Teste"
INDEX ON &(_Chave) TAG &(_Tag) TO &(_NomeInd)
To ficando mais careca do que ja sou !!!! kkkk
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
Opa... baixei a versão 2.13 e apareceu conforme o letodb.ini... será que a versão 2.15 tem problemas 
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
LetoDb e Harbour, como usar.
Estou usado a versão de hoje do SVN.
Coloque dessa forma seu letodb.ini
Minúsculos/maiúsculos, etc... deixa da forma que está esse e teste. Aqui funciona.
Saudações,
Itamar M. Lins Jr.
Coloque dessa forma seu letodb.ini
Código: Selecionar todos
[MAIN]
Port = 2812
Logfile = "letodb.log"
DEFAULT_DRIVER = CDX
DATAPATH = c:\clientes\xyz\
ENABLEFILEFUNC = 1
CRYPT_TRAFFIC = 0
PASS_FOR_LOGIN = 0
PASS_FOR_MANAGE = 0
PASS_FOR_DATA = 0
Share_Tables = 1
Cache_Records = 100
[DATABASE]
DataPath = c:\clientes\xyz\
Driver = CDX
Código: Selecionar todos
Leto DB Server v.2.15 ! INIT: DataPath=c:\clientes\xyz, ShareTables=1
, MaxUsers=500, MaxTables=5000, CacheRecords=100
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
LetoDb e Harbour, como usar.
O funcionamento é o mesmo de um motor SQL....Função indefinida
Use & ou () antes de indexar.
Código: Selecionar todos
cQuery := " cod_client == '" + cCodCl + "' .and. dtos(vencimento) >= '"+dtos(dIni)+"' .and. dtos(vencimento) <= '"+dtos(dFim)+"'"
cOrdBy := " dtos(emissao) + cod_venda "
Index on &cOrdBy Tag re99 for &cQuery temporary eval {||oBar:Step(),.t.}
ou
cQuery := ""
If !empty(cCodFornecedor)
cQuery += "'" + cCodFornecedor + "' == cod_fornec .AND. "
EndIf
If !Empty(cLoja)
cQuery += " '" + cLoja + "' == loja .AND. "
EndIf
cQuery += " dtos(data_vcto) >= ["+DToS(dIni)+"] .AND. dtos(data_vcto) <= ["+DToS(dFim)+"] .AND. empty(data_pgto) "
cOrdBy := " dtos(data_vcto)+duplicata "
Index on &cOrdBy TAG pg99 FOR &cQuery temporary additive eval {||oBar:Step(),.T.}
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
Sobre o letodb.ini... acabei de copiar conforme me passou e funcionou... devia ser alguma coisa no arquivo...tenho que habilitar alguma opção para enxergar as tabelas dentro do DATAPATH, pois por enquanto, estou tendo que copiar tudo na pasta principal, ou seja, se eu configurar DATAPATH=C:\TESTE\, esta lendo apenas o que esta em C:\TESTE\..... o que esta dentro das sub-pastas, não acha...alguma sugestão ?
Sobre o que relatei da função CRIPTO, agi assim:
Em um arquivo chamado LETOUDF.PRG ficou assim:
Dai compilei dessa forma:

Segui o que o TOLEDO, informou uns posts atrás, será que não fiz alguma coisa
F.Freire
Sobre o que relatei da função CRIPTO, agi assim:
Em um arquivo chamado LETOUDF.PRG ficou assim:
Código: Selecionar todos
FUNCTION UDF_CRIPTO( nUserStru, aString, vTipo, Serie )
// aString -- String a ser criptografada/descriptografada
// vTipo -- Tipo 'C' Criptografa - 'R' Descriptografa
// Serie -- Utilizada como base no calculo
LOCAL cWord, cChave, nPos := 1, vChave := 0, nCnt, Chave := ""
LOCAL cString := aString, nSerie, cRetr := ""
nSerie := STRZERO( Serie, 6 )
nSerie := VAL( SUBSTR( nSerie, 1, 1 ) ) + VAL( SUBSTR( nSerie, 2, 1 ) ) +;
VAL( SUBSTR( nSerie, 3, 1 ) ) + VAL( SUBSTR( nSerie, 4, 1 ) ) +;
VAL( SUBSTR( nSerie, 5, 1 ) ) + VAL( SUBSTR( nSerie, 6, 1 ) )
FOR nCnt = 10 TO 60
Chave += CHR( nCnt + nSerie )
NEXT nCnt
DO WHILE nPos <= LEN( cString )
cWord := SUBSTR( cString, nPos, 1 )
cChave := SUBSTR( Chave, nPos, 1 )
IF vTipo = "C"
vChave := vChave + ASC( cChave )
cRetr := cRetr + CHR( ASC( cWord ) + vChave )
ELSEIF vTipo = "R"
vChave := vChave - ASC( cChave )
cRetr := cRetr + CHR( ASC( cWord ) + vChave )
ENDIF
nPos++
ENDDO
RETURN( cRetr )
Gerou o arquivo letoudf.hrb, que coloquei na pasta que esta o letodb.exe... baixo o serviço e carrego novamente o serviço... consequentemente ele lê o arquivo com as funções e coloca no log assim:harbour letoudf.prg -gh -n -w -iC:\HARBOUR\INCLUDE
Dai como demonstrei acima, executando o LETO_UDF("UDF_CRIPTO",NOME."C")...funciona normal...só da erro quando tento gerar um indice.......o que poderia ser04/09/15 23:16:12: Leto DB Server has been started.
Leto DB Server v.2.15 ! INIT: DataPath=c:\ff, ShareTables=1, MaxUsers=500, MaxTables=5000, CacheRecords=100
04/09/15 23:16:12: C:\FFSoft\DESENV\hmg\letodb\bin\letoudf.hrb has been loaded.
Segui o que o TOLEDO, informou uns posts atrás, será que não fiz alguma coisa
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
LetoDb e Harbour, como usar.
O leto enxerga as subpastas.C:\TESTE\..... o que esta dentro das sub-pastas, não acha...alguma sugestão ?
Código: Selecionar todos
DATAPATH = c:\dados\
c:\dados\2015\
Código: Selecionar todos
if Leto_file(dServidor+mAno+"\"+ArqInv) //-> "MeuIp:2812\2015\inventario2015.dbf"
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
LetoDb e Harbour, como usar.
Resta saber se é possível usar a função LETO_UDF() em uma macro na criação de índices.FFreire escreveu:executando o LETO_UDF("UDF_CRIPTO",NOME."C")...funciona normal...só da erro quando tento gerar um indice
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
Ok... sobre ver nas sub-pastas, entendi, que devo informar ao letodb que o arquivo esta em determinado lugar, tinha entendido que era só apontar para a pasta principal e ele se encarregava de procurar os arquivos, da pasta principal indicada em diante... mas ficou claro.......Obrigado !
Sobre a questão de usar macro, gostaria de saber se alguém ja usou dessa forma, se não tiver jeito terei que fazer de outra forma... mas enfim... vamos ver se tem alguma utilização... fico no aguardo.....
Muito obrigado a todos... e vamos em frente !!!
F.Freire
Sobre a questão de usar macro, gostaria de saber se alguém ja usou dessa forma, se não tiver jeito terei que fazer de outra forma... mas enfim... vamos ver se tem alguma utilização... fico no aguardo.....
Muito obrigado a todos... e vamos em frente !!!
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
LetoDb e Harbour, como usar.
Prezados...
Novamente, venho solicitar ajuda, pois estou tentando o seguinte...
Como não esta funcionando. o esquema da macro na geração do indices, fiz isso:
// Atribuo ao leto a variavel
LETO_VARSET( "Main", "_Chave","Codigo", LETO_VCREAT )
// Se eu mandar exibir, ok também...
x := leto_varGet( "Main","_Chave" )
alert(x) // Exibe "Codigo" que é o que foi atribuido...
// Dai mando indexar...
zLetoDB := "//127.0.0.1:2812/"
INDEX ON LETO_UDF(zLetoDB+"UDF_CRIPTO",(_Chave),"R") TAG &_Tag TO &_NomeIndFim
E da erro...LETO/1003 Variável não existe...
Por favor... alguma luz
rs rs
F.Freire
Novamente, venho solicitar ajuda, pois estou tentando o seguinte...
Como não esta funcionando. o esquema da macro na geração do indices, fiz isso:
// Atribuo ao leto a variavel
LETO_VARSET( "Main", "_Chave","Codigo", LETO_VCREAT )
// Se eu mandar exibir, ok também...
x := leto_varGet( "Main","_Chave" )
alert(x) // Exibe "Codigo" que é o que foi atribuido...
// Dai mando indexar...
zLetoDB := "//127.0.0.1:2812/"
INDEX ON LETO_UDF(zLetoDB+"UDF_CRIPTO",(_Chave),"R") TAG &_Tag TO &_NomeIndFim
E da erro...LETO/1003 Variável não existe...
Por favor... alguma luz
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br