LetoDBf (fork) -> LetoDb com espinafre

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

Moderador: Moderadores

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á,

O retorno da função "dbRecordInfo para DBRI_LOCKED" não consegue enxergar o LOCK feito por outro programa sendo executado ao mesmo tempo.

Código: Selecionar todos

  ? "DbRLock-LETODBF=", NOMES_LETO->( DbRLock() )   // Aqui LETO travou o registro - OK

  ? "leto_MgGetLocks=", hb_valtoexp( leto_MgGetLocks( nConect, "NOMES.DBF", "<100" )       // Aqui retorna a lista dos locks de todos os programas em execução

  ? "DBRI_LOCKED=", hb_valtoexp( NOMES_LETO->( dbRecordInfo( DBRI_LOCKED, recno() ) ) )     // Aqui retorna a lista dos locks só do programa em execução
Já que na função "leto_MgGetLocks()" os locks funcionam mult-sistema, talvez a função "dbRecordInfo" deveria também herdar este comportamento, mas deve ter um motivo para isto ser assim ou ainda não foi implementado no LetoDbf.

T+
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
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 tentando testar o esquema de Transação do LetoDBF, mas na linha que executo a função leto_BeginTransaction(), ocorre o erro abaixo:

Código: Selecionar todos

Descrição do Erro: Erro ???DRIVER /1031 =>  Erro de sintaxe

[   2] LETO_BEGINTRANSACTION(0)                () [L]:.T., [U]:NIL, 

Alguém saberia me dizer porque deste erro e como resolver ?

Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
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á,
rossine escreveu:Olá,

Estou tentando testar o esquema de Transação do LetoDBF, mas na linha que executo a função leto_BeginTransaction(), ocorre o erro abaixo:

Código: Selecionar todos

Descrição do Erro: Erro ???DRIVER /1031 =>  Erro de sintaxe

[   2] LETO_BEGINTRANSACTION(0)                () [L]:.T., [U]:NIL, 

Alguém saberia me dizer porque deste erro e como resolver ?
Problema resolvido colocando o alias na função: MYALIAS->( leto_BeginTransaction() )

t+
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por porter »

Olá pessoal,
Estou recebendo de tempos em tempos na estação, essa mensagem de erro no letodbf.log, o sistema trava e tenho que fecha-lo,
a mensagem diz que a porta 2812 foi desligada, o anti-vírus do servidor é o Avast, no firewall já liberei a porta 2812, já informei
a pasta do sistema na lista de exclusões do Avast e ainda continua apresentando esse problema, quando executo o sistema na estação,
espero que essas informações sejam suficientes para alguém que já teve esse problema, dizer o que pode ser feito, Obrigado.

Código: Selecionar todos

12.21.2018 18:11:51       Server at port 2812 have shutdown.
01.01.2002 00:00:52       UDF file: C:\LETODBF\bin\letoudf.hrb not present.
01.01.2002 00:00:52 INFO: LetoDBf Server 3.00, will run at port :2812 ( internal also used :2813 )
01.01.2002 00:00:52 INFO: DataPath=\estoque, ShareTables=0, NoSaveWA=1, max database=999
01.01.2002 00:00:52 INFO: LoginPassword=0, CacheRecords=21, LockExtended=0
01.01.2002 00:00:52 DEBUG second socket: 188 for errors established
01.01.2002 00:00:52 DEBUG thread3() with pipe handle: 232 started .
.

Harbour 3.2.0(dev)
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á porter,
porter escreveu:a mensagem diz que a porta 2812 foi desligada
Na verdade a mensagem está dizendo que o Servidor conectado na porta 2812 caiu.

Isso significa que o serviço LetoDBf Service parou. Você tem que entender o que está interrompendo o serviço do LetoDBf.

Ideal é você entender a razão que causa essa interrupção do serviço, mas alternativamente, você pode tentar fazer com que o windows reinicie o serviço automaticamente.

Tente o seguinte (no servidor):

1-Abra a tela de serviços do Windows;
2-Localize e selecione o serviço LetoDBf Service;
3-Clique com o botão direito sobre ele;
4-Vá na guia Recuperação e escolha Propriedades;
5-Marque Primeira Falha, Segunda Falha e Falha posteriores como Reiniciar o Serviço;
6-O tempo mínimo para outra tentativa do Windows é de 1 minuto, estará marcada como padrão;
7-Salve.

Se o serviço reiniciar e a conexão voltar dentro desse tempo (o sistema fica aguardando), então tente saber o que está parando o serviço.

Dica: Pode ser programa de acesso a banco também.
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á,

Teria como usar o LetoDBF para acessar dois arquivos em unidades de discos distintas ?

Tentei configurar desta maneira mas não deu certo:

letodb.ini

Código: Selecionar todos

...
DataPath = /
...
Exemplo de uso:

Código: Selecionar todos

DbUseArea( .t., "LETO", "C:\myserver_C\ARQ_001.DBF", "NOMES_LETO_C", .t. )

DbUseArea( .t., "LETO", "D:\myserver_D\ARQ_002.DBF", "NOMES_LETO_D", .t. )
Obrigado,
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 »

Olá amigos,

Tem alguém usando o LetoDB(f) com xHarbour 1.2.1?

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

rossine escreveu:Olá,

Teria como usar o LetoDBF para acessar dois arquivos em unidades de discos distintas ?

Tentei configurar desta maneira mas não deu certo:
Acredito que somente executando o letodbf em portas distintas uma você usa a 2812 ou 2814 ...
►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á,

O Elch, fez a implementação no LetoDBF para porder trabalhar com 2 arquivos letodn.ini distintos.

Vejam aqui: https://groups.google.com/forum/#!topic ... tbCwsJr_9g

T+
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 »

rossine escreveu:Olá,

O Elch, fez a implementação no LetoDBF para porder trabalhar com 2 arquivos letodn.ini distintos.
Você usa como serviço ? nunca precisei usar como serviço
►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,

Sim, estou usando como serviço.

Abraço,

Rossine.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
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á,

Tenho um índice onde tenho uma variável pública, assim:

Left( referencia, nNivel )

Usando o Leto, na hora de indexar, ocorre de execução , variável inexistente "nNivel"

Tentei criar esta variável no servidor atraves da funçao leto_varset() mas nao deu certo.

Alguem saberia me dizer como fazer ?

Resolvido: https://groups.google.com/forum/m/#!top ... kkTp9LrEgQ

Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por porter »

Olá pessoal, tenho essa rotina onde transfiro registros de um arquivo para outro em seguida deleto o registro,
gostaria de saber, se com o LetoDBF, a cada registro deletado, é necessário dar um DBCOMMIT() e um DBUNLOCK()
a cada registro deletado, ou basta dar um DBCOMMIT() e um DBUNLOCK() quando terminar de processar o arquivo inteiro.

Código: Selecionar todos

SELECT 82 // ITENS
SEEK STR(cPEDIDOS,6) 
DO WHILE PEDIDO = cPEDIDO
     IGUALAVAR() // IGUALO VARIAVEIS
     SELECT 4 ; APPEND BLANK
     REPLACE CODMERCAD  WITH wCODMERCAD
     REPLACE NOMPRO_    WITH wNOMPRO_  
     DBCOMMIT()
     DBRUNLOCK()
     SELECT 82
     RLOCK() ; DELETE // --> nessa linha, tem que executar DBCOMMIT() E DBUNLOCK() ?		   
     SKIP
ENDDO
DBCOMMIT()
DBRUNLOCK()
SELECT 81
RETURN
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á porter,

Minha opinião: Apenas no final do processamento de todos os registros use DbCommit() e DbUnlock(). Usar DbRCommit(), DbCommit() ou COMMIT a cada registro atrasa e muito o processamento.

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. Mas faça como achar mais seguro.
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
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

LetoDBf (fork) -> LetoDb com espinafre

Mensagem por rubens »

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ê ???"
Responder