Clipper On Line • Ver Tópico - LetoDBf (fork) -> LetoDb com espinafre
Mudar para estilo Clássico
Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.
Postar uma resposta

LetoDBf (fork) -> LetoDb com espinafre

04 Jan 2019 14:58

Olá Rubens,

rubens escreveu:Isso apenas no registro atual ou na tabela inteira?
Na tabela aberta na área atual, e em todos os registros. Para ter esse efeito em áreas relacionadas e demais áreas abertas, use DbUnlockAll(), ou DbUnlock()->cNomeAlias.

Veja:
DbUnlock():
Releases file and all record locks in a work area.
(Tradução livre: libera o arquivo e todos os registros de uma determinada área)
PS: Se não informar a área, exemplo: DbUnlock()->cNomeAlias, o efeito será exclusivo na área atual.

DbUnlockAll():
Unlocks all records and releases all file locks in all work areas.
(Tradução livre: libera todos os registros e todos os arquivos em todas as áreas)

LetoDBf (fork) -> LetoDb com espinafre

05 Jan 2019 18:01

Olá,

Estou tendo um problema aqui com o Letodbf, quando eu vou gravar algum registro ou incluir um novo, dá erro de GPF ou trava a tela.
Estou abrindo os arquivos dbf e cdx, passando o path com IP corretamente e o arquivo é aberto normalmente.

Alguém já se deparou com este tipo de problema ?

Obrigado.

LetoDBf (fork) -> LetoDb com espinafre

08 Jan 2019 10:18

Olá rossine,

Qual versão do Harbour você está usando? Pergunto porque nas duas versões mais recentes (a de 31/12/2018 e a anterior) tive muito problema na hora de travar registros usando o LETO, então voltei a usar uma versão de Junho de 2017.

Isso porque uso o Harbour 3.2, sobre o 3.4 não sei.

LetoDBf (fork) -> LetoDb com espinafre

10 Jan 2019 09:29

Olá,

Fiz atualização do LetoDbf ontem 09/01 atualização da mesma data e estou tendo problemas agora na criação de indices temporários

Código:
Error LETO/1006  Erro de criacao: DB\Harbour\h-AsaPrev\NETIO\SERVER5\DB\TMP6439544.CDX (DOS Error 3)
Called from ->ORDCREATE(0)


o DataPath no letodb.ini é:

DataPath = DB

Alguém está passando pelo mesmo problema ?

Acho que tem a ver com a nova função LETO_SETPATH

LetoDBf (fork) -> LetoDb com espinafre

10 Jan 2019 11:41

Alexandre, ainda não atualizei o LETO, mas você poderia fazer um teste por favor com a nova versão? Seria alterar DataPath = DB para DataPath = C:\DB, ou seja, colocar a unidade e reiniciar o serviço, para ver se vai funcionar.

LetoDBf (fork) -> LetoDb com espinafre

10 Jan 2019 12:44

Jairo Maia escreveu:Alexandre, ainda não atualizei o LETO, mas você poderia fazer um teste por favor com a nova versão? Seria alterar DataPath = DB para DataPath = C:\DB, ou seja, colocar a unidade e reiniciar o serviço, para ver se vai funcionar.


Jairo, descobri o problema, na minha aplicação logo no início tinha um

cDirSis := Hb_DirBase() + [NETIO\SERVER5\DB\]

SET DEFAULT TO &cDirSis.

Removi o SET DEFAULT TO &cDirSis. e funcionou nessa versão de 09/01/2019, o set default poderia até ser removido não impacta na aplicação.

Então nessa atualização não pode usar SET DEFAULT TO &cDirSis ou existe alguma forma que eu ainda não entendi, nem mesmo olhando o código da letodbf

O que eu não consegui entender ainda é essa função nova LETO_SETPATH que no changelog fiz que pode ser usada em substituição de SET PATH TO e SET DEFAULT TO,

Mas tem uma grande ? de como usar, se alguém souber gostaria de uma orientação de uso.

LetoDBf (fork) -> LetoDb com espinafre

12 Jan 2019 16:35

Olá Jairo,

Olá rossine,

Qual versão do Harbour você está usando? Pergunto porque nas duas versões mais recentes (a de 31/12/2018 e a anterior) tive muito problema na hora de travar registros usando o LETO, então voltei a usar uma versão de Junho de 2017.

Isso porque uso o Harbour 3.2, sobre o 3.4 não sei.



Estou usando o Harbour 3.4.

Parece que o problema está no controle do index, pois logo após alterar um um registro, até outro arquivo some os registros.

Tipo assim:

- Tenho um arquivo de contas a receber qonde a chaves principal é: documento + tipo de documento.
- Quando incluo um registro no contas a receber, os registros do cadastro de tipo de documentos, somem e quando eu tento reincluir um novo registro, aí ocorre o GPF.

LetoDBf (fork) -> LetoDb com espinafre

12 Jan 2019 18:44

Olá Rossine,

Tem como mostrar o código desta gravação ?

Eu tenho usado o harbour 3.4 compilado com LLVM/CLANG 7.01 e também a última atualização do letodbf de 12/01, o meu sistema está estável.
Faço DbRLock(), DbCommit(), DbUnLock() sem problemas.

Lembro de problemas com indice e por acaso descobri que era o parâmetro timeout Leto_Connect()

Passei usar: nTimeOut := -1
Nunca mais tive problemas com abertura de tabela e indices, as gravações estão ok.

Ex.:
Código:

cIpAddServer := [192.168.1.109]

cPortaServer := [2812]

cServidorDB  := [//] + cIpAddServer + [:] + cPortaServer + [/]

nTimeOut     := -1

Leto_Connect( cServidorDB, , , nTimeOut )

LetoDBf (fork) -> LetoDb com espinafre

15 Jan 2019 21:01

Olá Alexandre,

asimoes escreveu:Eu tenho usado o harbour 3.4 compilado com LLVM/CLANG 7.01 e também a última atualização do letodbf de 12/01, o meu sistema está estável.
Faço DbRLock(), DbCommit(), DbUnLock() sem problemas.

Lembro de problemas com indice e por acaso descobri que era o parâmetro timeout Leto_Connect()

Passei usar: nTimeOut := -1
Nunca mais tive problemas com abertura de tabela e indices, as gravações estão ok.

Ex.:
Código:

cIpAddServer := [192.168.1.109]

cPortaServer := [2812]

cServidorDB  := [//] + cIpAddServer + [:] + cPortaServer + [/]

nTimeOut     := -1

Leto_Connect( cServidorDB, , , nTimeOut )


Aqui eu já usava a configuração: nTimeOut := -1 e mesmo assim ocorria o erro que citei.

Não sei se o que o Elch mexeu nesta última release também resolveu meu problema, mas agora está funcionando 100%, inclusive estou testando em casa usando meu notebook via wifi acessando uma máquina local que deixei como servidor de dados do LETO e inclusive a velocidade de execução que também estava muito lento, melhorou muito o acesso aos dados.

Me parece que o Elch, corrigiu algum problema sobre "locks" nesta release. Vejam o comentário dele:

https://groups.google.com/forum/#!topic/harbour-users/lKCaAbJ9HPQ%5B26-50%5D

T+

LetoDBf (fork) -> LetoDb com espinafre

20 Fev 2019 20:40

Caros amigos,

Atualmente utilizo xHarbour 1.2.1 (Simplex) (Rev. 9421) / Borland C++ 5.5.1 (32 bit) e não tenho como iniciar uma migração para o Harbour hoje.
Já uso o Letodb em meu sistema e estou interessado em fazer testes com o Letodb(f). Após baixar, tentei gerar a LIB e encontrei os seguintes erros na execução do make_b32.bat.
O Letodb(f) aumentou a velocidade de acesso os dados? Na minha aplicação tenho que fornecer muitos relatórios várias vezes ao dia com críticas de vendas por item, o que gera uma demanda muito grande, visto que o banco de dados é enorme.

Código:
MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
   IF EXIST "obj\api\letocl.obj" del obj\api\letocl.obj
   bcc32 -c -Iinclude;D:\XHARBOUR\include -d   -tWM -D__WIN32__ -D__CONSOLE__  -DUSE_PMURHASH=1 -D__LETO_C_API__=1 -DLETO_NO_MT=1 -DLETO_NO_THREAD=1 -oobj\api\letocl.obj source\client\letocl.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
source\client\letocl.c:
Error E2209 D:\XHARBOUR\include\hbzlib.h 41: Unable to open include file '../source/rtl/zlib/zlib.h'
Error E2141 include\funcleto.h 176: Declaration syntax error
Error E2141 include\funcleto.h 177: Declaration syntax error
Error E2141 include\funcleto.h 178: Declaration syntax error
Error E2141 include\funcleto.h 180: Declaration syntax error
Error E2141 include\funcleto.h 181: Declaration syntax error
Error E2293 include\funcleto.h 182: ) expected
Error E2141 include\funcleto.h 185: Declaration syntax error
Error E2141 include\funcleto.h 186: Declaration syntax error
Error E2303 include\funcleto.h 189: Type name expected
Error E2293 include\funcleto.h 190: ) expected
Error E2303 include\funcleto.h 191: Type name expected
Error E2303 include\funcleto.h 192: Type name expected
Error E2147 include\funcleto.h 193: 'HB_BOOL' cannot start a parameter declaration
Error E2141 include\funcleto.h 196: Declaration syntax error
Warning W8017 D:\XHARBOUR\include\hbapirdd.h 125: Redefinition of 'HB_FT_TIME' is not identical
Error E2139 include\letocl.h 111: Declaration missing ;
Error E2238 include\letocl.h 112: Multiple declaration for 'HB_USHORT'
Error E2344 include\letocl.h 111: Earlier declaration of 'HB_USHORT'
Error E2139 include\letocl.h 112: Declaration missing ;
Error E2238 include\letocl.h 113: Multiple declaration for 'HB_USHORT'
Error E2344 include\letocl.h 111: Earlier declaration of 'HB_USHORT'
Error E2139 include\letocl.h 113: Declaration missing ;
Error E2238 include\letocl.h 114: Multiple declaration for 'HB_USHORT'
Error E2344 include\letocl.h 111: Earlier declaration of 'HB_USHORT'
Error E2139 include\letocl.h 114: Declaration missing ;
Error E2228 include\letocl.h 114: Too many error or warning messages
*** 26 errors in Compile ***

** error 1 ** deleting obj\api\letocl.obj


Se alguém puder ajudar, agradeço antecipadamente.

Saudações,

Júlio.

LetoDBf (fork) -> LetoDb com espinafre

23 Fev 2019 11:10

na minha humilde opnião seria bom fazer um topico so com o letodb(fork) , aqui até tem muita informação, mais esta um pouco digamos "bagunçada" , porque mistura o letodb e o letodb(fork)
que convenhamos são parecidos mais tem pequenas diferenças
seria bom abrir um topico , com a a ideia inicial do itamar, que fosse um estilo manual de como iniciar , o que precisa o que mudaria no seu .prg atual
com pequenos exemplos funcionais, para facilitar
com toda certeza diminuiriam as duvidas em torno do assunto... fosse estilo o tutorial do acbr que o amigo rubens "salvo engano " fez
sei que demandaria um pouco de trabalho, então quem ja esta usando, poderia se empenhar "quando podesse claro pq sei que o tempo é corrido para nós ",
em ajudar esse topico ja que estaria tudo centalizado em um unico lugar

LetoDBf (fork) -> LetoDb com espinafre

27 Fev 2019 20:16

Com muito trabalho e ajuda de alguns amigos aqui ate consegui ja fazer a conexão com o letodbf

agora vem as duvidas:
como eu apago um indice que esta sendo gerenciado pelo letodb
se eu fechar os bancos tenho que reconectar?
falo isso pq em certo momento preciso fechar os bancos do modo compartilhado e reabrir em exclusivo

sem o leto em alguns casos uso rlock() , e em uma função deu o erro Leto/1022 travamento requerido, que so parou quando troquei rlock() por flock()
por hora são essas pequenas duvidas

LetoDBf (fork) -> LetoDb com espinafre

28 Fev 2019 09:06

Caro amigo Nascimento.

Nascimento escreveu:como eu apago um indice que esta sendo gerenciado pelo letodb

Não muda nada quanto ao uso do DBFCDX. Você pode continuar usando DBSETORDER(n).

Nascimento escreveu:se eu fechar os bancos tenho que reconectar?

Não é necessário, pois quando você fecha um arquivo específico, não termina a conexão com a pasta dos arquivos.

Nascimento escreveu:falo isso pq em certo momento preciso fechar os bancos do modo compartilhado e reabrir em exclusivo
sem o leto em alguns casos uso rlock() , e em uma função deu o erro Leto/1022 travamento requerido, que so parou quando troquei rlock() por flock(). por hora são essas pequenas duvidas

Nunca abri um arquivo em modo exclusivo no LETODB, por isso não posso dizer exatamente o porque do erro em questão, mais entendo que como o arquivo é exclusivo, o LETODB exige que todos os registros fiquem travados ""FLOCK()" para uma atualização.

Espero ter colaborado.
Saudações,

Júlio.

LetoDBf (fork) -> LetoDb com espinafre

07 Jun 2023 22:02

Pessoal, o LETODBF foi atualizado e agora compila as libs para xharbour!!!
Entretanto, não estou conseguindo compilar o server com o HB32...

C:\PROGRAMAS\LetoDBf>hbmk2 letodb.hbp
hbmk2: Processando opções do ambiente: -comp=mingw
source\server\server.prg(348) Warning W0001 Ambiguous reference 'LETOOPT_UDFENABLED'
source\server\server.prg(349) Warning W0001 Ambiguous reference 'LETOOPT_DEBUGLEVEL'
source\server\server.prg(393) Warning W0001 Ambiguous reference 'LETOOPT_UDFENABLED'
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c: In function 'LetoMgKillUser':
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c:3794:16: warning: implicit declaration of function 'hb_fsPipeWrite' [-Wimplicit-function-declaration]
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c: In function 'HB_FUN_LETO_FTS':
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c:7355:16: warning: implicit declaration of function 'hb_strAtI' [-Wimplicit-function-declaration]
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c: In function 'leto_dbEvalJoinPrePos':
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c:8370:10: warning: implicit declaration of function 'hb_itemCompare' [-Wimplicit-function-declaration]
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c: In function 'HB_FUN_LETO_DBEVAL':
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c:9744:4: warning: implicit declaration of function 'HB_ISEVALITEM' [-Wimplicit-function-declaration]
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c: In function 'leto_Set':
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c:12848:16: warning: implicit declaration of function 'hb_setGetItem' [-Wimplicit-function-declaration]
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c: In function 'leto_Info':
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c:15122:15: error: 'DBI_TRANSREC' undeclared (first use in this function)
../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c:15122:15: note: each undeclared identifier is reported only once for each function it appears in
../../../../../../PROGRAMAS/LetoDBf/source/server/leto_2.c: In function 'HB_FUN_LETO_SERVER':
../../../../../../PROGRAMAS/LetoDBf/source/server/leto_2.c:2333:13: warning: this decimal constant is unsigned only in ISO C90 [enabled by default]
../../../../../../PROGRAMAS/LetoDBf/source/server/leto_2.c:2377:13: warning: implicit declaration of function 'hb_fsPipeWrite' [-Wimplicit-function-declaration]
../../../../../../PROGRAMAS/LetoDBf/source/common/common_c.c: In function 'HB_FUN_LETO_ISVALIDIP4':
../../../../../../PROGRAMAS/LetoDBf/source/common/common_c.c:773:56: error: 'LETO_DEFAULT_PORT' undeclared (first use in this function)
../../../../../../PROGRAMAS/LetoDBf/source/common/common_c.c:773:56: note: each undeclared identifier is reported only once for each function it appears in
hbmk2[letodb]: Erro: Executando compilador C/C++. 1
C:\HB32\comp\mingw\bin\gcc.exe -c -O3 -march=i586 -mtune=pentiumpro -fomit-frame-pointer -DUSE_LZ4=1 -DUSE_PMURHASH=1 -W -Wall -pipe -IC:/HB32/include -I../../../../../../PROGRAMAS/LetoDBf/include -I../../../../../../PROGRAMAS/LetoDBf/source/3rd/lz4/lib -IC:/HB32/contrib/hbct C:/Users/numer/AppData/Local/Temp/hbmk_f17t3t.dir/server.c C:/Users/numer/AppData/Local/Temp/hbmk_f17t3t.dir/errorsys.c C:/Users/numer/AppData/Local/Temp/hbmk_f17t3t.dir/common.c ../../../../../../PROGRAMAS/LetoDBf/source/server/errint.c ../../../../../../PROGRAMAS/LetoDBf/source/server/letoacc.c ../../../../../../PROGRAMAS/LetoDBf/source/server/letovars.c ../../../../../../PROGRAMAS/LetoDBf/source/server/letofunc.c ../../../../../../PROGRAMAS/LetoDBf/source/server/letolist.c ../../../../../../PROGRAMAS/LetoDBf/source/server/leto_2.c ../../../../../../PROGRAMAS/LetoDBf/source/common/blowfish.c ../../../../../../PROGRAMAS/LetoDBf/source/common/common_c.c ../../../../../../PROGRAMAS/LetoDBf/source/3rd/lz4/lib/lz4.c ../../../../../../PROGRAMAS/LetoDBf/source/common/lz4net.c ../../../../../../PROGRAMAS/LetoDBf/source/common/PMurHash.c C:/Users/numer/AppData/Local/Temp/hbmk_8p4cya.c

LetoDBf (fork) -> LetoDb com espinafre

11 Jun 2023 00:44

Esse erro acima eu resolví simplesmente baixando a última versão do HB32 novamente.
Depois disso compilou normalmente sem erros.
Postar uma resposta