Clipper On Line • Ver Tópico - LetoDBf (fork) -> LetoDb com espinafre

LetoDBf (fork) -> LetoDb com espinafre

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor rubens » 04 Jan 2019 13:32

Boa tarde...
Eu uso apenas DbUnlock() no final do processamento (uso apenas isso) porque ao liberar o arquivo ou registro(s) eles são salvos no banco de dados automaticamente

Então.. Jairo.. eu tb usava dbcommit() e depois dbunlock(). Não sabia desse detalhe.
Então se usar apenas dbunlock() ele destrava o registro e salva alterações?
Isso apenas no registro atual ou na tabela inteira?

Achei isso no manual do harbour do git https://harbour.github.io/doc/harbour.html#dbunlock
Essa função libera o arquivo ou o bloqueio de registro na área de trabalho atualmente selecionada ou com alias. Ele não desbloqueará um bloqueio associado em bancos de dados relacionados.


Obg.
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1448
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 69 vezes
Mens.Curtidas: 94 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor Jairo Maia » 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)
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 de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2440
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 294 vezes
Mens.Curtidas: 264 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor rossine » 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.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB, SynWrite.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 232
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 0 vez
Mens.Curtidas: 17 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor Jairo Maia » 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.
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 de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2440
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 294 vezes
Mens.Curtidas: 264 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor asimoes » 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

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4204
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 292 vezes
Mens.Curtidas: 210 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor Jairo Maia » 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.
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 de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2440
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 294 vezes
Mens.Curtidas: 264 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor asimoes » 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.
►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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4204
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 292 vezes
Mens.Curtidas: 210 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor rossine » 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.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB, SynWrite.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 232
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 0 vez
Mens.Curtidas: 17 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor asimoes » 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.:

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)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4204
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 292 vezes
Mens.Curtidas: 210 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor rossine » 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.:

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

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB, SynWrite.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 232
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 0 vez
Mens.Curtidas: 17 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor jelias » 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.

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
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 211
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 9 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor Nascimento » 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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 537
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 83 vezes
Mens.Curtidas: 57 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor Nascimento » 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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 537
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 83 vezes
Mens.Curtidas: 57 vezes

LetoDBf (fork) -> LetoDb com espinafre

Mensagempor jelias » 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.
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
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 211
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 9 vezes

Anterior



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro