Página 12 de 13
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 16 Dez 2018 16:47
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+
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 21 Dez 2018 11:08
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,
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 21 Dez 2018 17:12
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+
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 22 Dez 2018 10:11
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)
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 23 Dez 2018 09:08
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.
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 23 Dez 2018 12:00
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
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,
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 27 Dez 2018 10:10
por jelias
Olá amigos,
Tem alguém usando o LetoDB(f) com xHarbour 1.2.1?
Saudações,
Júlio.
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 27 Dez 2018 11:55
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 ...
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 27 Dez 2018 12:22
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+
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 27 Dez 2018 15:20
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
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 27 Dez 2018 18:52
por rossine
Olá Alexandre,
Sim, estou usando como serviço.
Abraço,
Rossine.
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 30 Dez 2018 16:01
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,
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 04 Jan 2019 13:07
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
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 04 Jan 2019 14:25
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.
LetoDBf (fork) -> LetoDb com espinafre
Enviado: 04 Jan 2019 14:32
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