LetoDBf (fork) -> LetoDb com espinafre

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por Jairo Maia »

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)
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por rossine »

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.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por Jairo Maia »

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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por asimoes »

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: Selecionar todos

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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por Jairo Maia »

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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por asimoes »

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.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por rossine »

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.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por asimoes »

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: Selecionar todos


cIpAddServer := [192.168.1.109]

cPortaServer := [2812]

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

nTimeOut     := -1

Leto_Connect( cServidorDB, , , nTimeOut )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por rossine »

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: Selecionar todos


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 ... 5B26-50%5D

T+
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por jelias »

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: Selecionar todos

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.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por Nascimento »

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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por Nascimento »

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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por jelias »

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.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por Linguagemclipper »

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
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por Linguagemclipper »

Esse erro acima eu resolví simplesmente baixando a última versão do HB32 novamente.
Depois disso compilou normalmente sem erros.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Responder