Clipper On Line • Ver Tópico - Limite de Replace com Ledodb ??

Limite de Replace com Ledodb ??

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

Moderador: Moderadores

 

Limite de Replace com Ledodb ??

Mensagempor Nascimento » 05 Fev 2020 23:29

Amigos só tirando uma duvida
meu sistema esta funcionando com o letodb , ainda aprendendo mais e mais usar ele
as vezes me deparo com coisas que são inexplicaveis para mim por exemplo:


Select Mydbf

if Rlock()
    replace a with b
    ......
    .......
endif


em alguns casos da ERRO LETO/1022 travamento requerido
ja verifiquei se consegue bloquear o registro , e sim me retornou a .t. mesmo assim da o erro citado abaixo

então troco para flock() e replaça normalmente
algum amigo ja passou por isso e conseguiu resolver?
suspeito que seja algo no letodb.ini
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: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

Limite de Replace com Ledodb ??

Mensagempor Itamar M. Lins Jr. » 05 Fev 2020 23:39

Ola!
Letodb ou LetoDbf ?
Aqui esse erro dá quando cai a rede.
Colocar o arquivo letodb.ini para analise

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Limite de Replace com Ledodb ??

Mensagempor Nascimento » 06 Fev 2020 00:00

Itamar M. Lins Jr. escreveu:Ola!
Letodb ou LetoDbf ?
Aqui esse erro dá quando cai a rede.
Colocar o arquivo letodb.ini para analise

Saudações,
Itamar M. Lins Jr.


Nobre é o Letodbf do elch

e salvo engano quando cai a rede é outro codigo de erro
o que dificulta um pouco é o leto não ter o codigo de erro , não sei se é porque ele
usa o mesmo do dbf/cdx

no entanto a rede não cai , porque se eu colocar Flock() ao invés do Rlock() replaça tudo normalmente

;Server = 192.168.2.47
;IP = 192.168.2.47
Port = 2812
DataPath = D:/Motel/Dados/
;LogPath = /tmp
Default_Driver = CDX
;Lock_Scheme = 6
;Memo_Type = FPT
Share_Tables = 1
No_Save_WA = 1
Lower_Path = 0
EnableFileFunc = 1
EnableAnyExt = 1
Allow_UDF = 1
Pass_for_Login = 0
Pass_for_Manage = 0
Pass_for_Data = 0
Pass_File = leto_users
Cache_Records = 21
;Max_Vars_Number = 1000
;Max_Var_Size = 67108864
;Tables_Max = 999
;Users_Max = 99
Debug = 1
Optimize = 1
;AutOrder = 0
;ForceOpt = 0
;TimeOut = 360
;Zombie_Check = 0
;Server_User = advantage
;Server_UID = 1000
;Server_GID = 4
;BC_Services = letodb;
;BC_Interface = eth2
;BC_Port = 2812
;SMB_SERVER = 1
DataBase =d:/Dados/
Backup = /tmp/backup
Mask = *.dbf,*.dbt,*.ntx
Lock = 1
Seconds = 30
Wait = 1
ArcCmd = tar -cvzf /tmp/backup/leto.tar.gz /tmp/backup/*



fiz até testes de funcionamento remoto, e funcionou normalzinho , através de servidores Mikrotik , no geral quem tem internet de bairro "gato net" usam muito esses servidores
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: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

Limite de Replace com Ledodb ??

Mensagempor Itamar M. Lins Jr. » 06 Fev 2020 07:30

Ola!
Por acaso esta pasta está com acesso exclusivo pelo letodb ou tem mais programas acessando tipo googledrive, onedrive ?
Ou outro programa harbour abrindo o DBF por fora do letodbf ?

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Limite de Replace com Ledodb ??

Mensagempor Nascimento » 06 Fev 2020 10:56

Itamar M. Lins Jr. escreveu:Ola!
Por acaso esta pasta está com acesso exclusivo pelo letodb ou tem mais programas acessando tipo googledrive, onedrive ?
Ou outro programa harbour abrindo o DBF por fora do letodbf ?

Saudações,
Itamar M. Lins Jr.


Não nobre só o próprio sistema mesmo

segue a foto abaixo
error.png
este é o erro que ocorre quando eu coloco rlock() se eu por flock() o erro somo


não sei se vai adiantar muito mais esta abaixo um pedaço do codigo onde esta ocasionando o problema

Static Procedure Atualiza_Entrada()
  local nWindow := Thiswindow.name
  local num_doc := Trim(GetProperty(nWindow,"tx_num_doc","value"))
  local nomepag:= ''
  local oldreg:= 0
  local soma :=  0
  local totn :=  0
  local chave
  local nome_bord := ''
  local cTxtPrint := ''
  local dif := .f.
  select ent
  set order to 2
  seek num_doc
  if (Eof())
  *
  Return Nil
  elseif (atualiza .and. Empty(destino))
  *
  elseif (!atualiza .and. !Empty(destino))
  *
  endif
  oldreg:= RecNo()
  do case
     case ent->condpag = "2"
        nomepag:= "DUPLICATA"
     case ent->condpag = "3"
        nomepag:= "CARTEIRA"
     case ent->condpag = "4"
        nomepag:= "CHEQUE PRE-DATADO"
     case ent->condpag = "1"
        nomepag:= "A VISTA"
  endcase
  totn:= ent->totalnota - ent->imposto - ent->desconto
  * soma os valores dos produtos
  do while (!Eof())
     if (Trim(ent->document) = Trim(num_doc))
        soma+= ultpreco
     else
        exit
     endif
     skip
     loop
  enddo
  st:= "NOTA DIGITADA CORRETAMENTE"
  * compara os valores dos produtos com o valor da nota
  if (totn != round(soma,2))
     st:= "VL  NOTA DIF. VL DOS PRODUTOS"
     dif := .t.
  endif
  goto oldreg
  do while (!Eof())
     chave:= ent->grupo + ent->sub_grupo + ent->codigo
     select mcf
     seek val(chave)
     if (rlock())  // se eu trocar para flock() não da o erro
        replace outdesp3  with  outdesp2
        replace numdoc3   with  numdoc2
        replace frete3    with  frete2
        replace preuni3   with  preuni2
        replace dtfor3    with  dtfor2
        replace codfor3   with  codfor2
        replace qtdfor3   with  qtdfor2
        replace outdesp2  with  outdesp1
        replace numdoc2   with  numdoc1
        replace frete2    with  frete1
        replace preuni2   with  preuni1
        replace dtfor2    with  dtfor1
        replace codfor2   with  codfor1
        replace qtdfor2   with  qtdfor1
        replace numdoc1   with  ent->document
        replace frete1    with  ent->imposto
        replace preuni1   with  ent->custo
        replace dtfor1    with  ent->emissao
        replace codfor1   with  ent->codfor
        replace qtdfor1   with  ent->qtdultcomp
        replace outdesp1  with  ent->desconto
        replace almox_atu with  almox_atu +  ent->qtdultcomp
        replace datamov   with  var4         
        mcf->(Dbcommit())
        mcf->(Dbunlock())
     endif
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: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

Limite de Replace com Ledodb ??

Mensagempor Itamar M. Lins Jr. » 06 Fev 2020 19:43

Ola!
Com certeza tem erro ai.
Pq teria que dar erro em qualquer parte que vc use rlock()
Agora, eu fico horas dias, tentando achar bugs dessas ferramentas que uso, na maioria das vezes é erro aqui meu.
Eu checo se Seek, etc...falhou em tudo eu coloco alias.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Limite de Replace com Ledodb ??

Mensagempor Fernando queiroz » 08 Fev 2020 20:51

estou tendo esse mesmo problema de bloqueio de registro, mas acontece intermitente, hora da a mensagem de RLOCK()

Acabei fazendo assim para ver o que acontece

DBSELECTAREA("ITENS")
Ordsetfocus(2)
DO WHILE ! RLOCK()
hwg_MsgInfo( "Registro em uso por outro usuário"+ HB_EOL()+ "Solicite que liberem o Item do Pedido","ATENÇÃO!!!" )
ENDDO

IF RLock()
DBDELETE()
ELSE
hwg_MsgYesNo("Item não foi excluido!!!","Falha na Exclusão")
RETURN NIL
ENDIF

Ele passa pelo DO WHILE e diz na hora de BDDELETE() que Rlock() é requerido, vai entender :% :% :%
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

Limite de Replace com Ledodb ??

Mensagempor Nascimento » 08 Fev 2020 21:31

bom segui a risca o que o amigo Itamar escreveu botei debug´s linha a linha e no debug o rlock() retorna a .t.
oque deduzi que não é erro no codigo "ao menos não achei"
mesmo assim da a mensagem, quando troca pra o flock() tambem retorna a .t. porém não da o erro e replaça normalmente
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: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

Limite de Replace com Ledodb ??

Mensagempor Itamar M. Lins Jr. » 08 Fev 2020 21:47

Ola!
Meu rlock:
******************************
Function TravaRegistro(cAlias)
******************************
*
*
Local lRet := .T.
Hb_Default(@cAlias,Alias())
Do While .T.
      If (cAlias)->(rlock())
         exit
      EndIf
   If hwg_MsgYesNo('Registro não bloqueado, '+cAlias+' Tentar Novamente ? '+hb_eol()+"Função: "+ProcName(1))
   Else
      lRet := .F.
      Exit
   EndIf
EndDo
Return lRet


Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Limite de Replace com Ledodb ??

Mensagempor Fernando queiroz » 11 Fev 2020 21:59

realmente o problema era a falta do ALIAS no travamento RLOCK() , coloquei onde estava dando erro e o problema foi sanado

:)) :)) :))
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Google [Bot] e 11 visitantes


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
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro