RDD LETO Sem Mistério

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

Moderador: Moderadores

Lucio
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 24 Fev 2011 18:02
Localização: jaciara/MT

RDD LETO Sem Mistério

Mensagem por Lucio »

Saudação a todos.

Tenho um sistema em clipper e estive lendo este topico sobre o letodb.
Nao trabalho com Harbour nem mysql ainda, mas me interessei usar letodb para melhorar a velocidade
dos dbfs em rede.
Não tenho nem ideia de como começar. Alguem de voces que ja passaram pelos caminhos poderia me ajudar com um passo-a-passo? ou tem algum topico ja com esta função ?
Posso usar o letodb com o clipper puro, seus DBFs e NTX ?
O que realmente esse letodb faz ? ele trabalha com indices diferentes ou usa outros metodos que melhoram o desempenho da aplicação?

Agradeço desde ja.

Lucio.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

RDD LETO Sem Mistério

Mensagem por janio »

O que o Leto faz eh simular um ambiente cliente/servidor com nossos dbf's. Ou seja, se vc usar seu sistema em mais de um computador, não precisa sair mapeando em cada maquina uma pasta compartilhada no servidor, basta apenas apontar seu sistema para o ip do servidor. Resultado disso: base de dados fica mais segura la no servidor e a velocidade fica incrível, não importando o tanto de maquinas q existam na rede.

O restante ele nao muda nada. Vc pode continuar usando seus indices do mesmo modo... mesmo rdd... tudo igual. Não muda nada.

Ele não funcionar no clipper. So xHarbour ou Harbour.

Vc primeiro deve migrar de clipper para (x)harbour. Ha dezenas e dezenas de topicos que falam sobre isso. Depois de tudo funcionando no harbour... ae vc vai pro leto!

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

RDD LETO Sem Mistério

Mensagem por lugab »

Ola amigos, olá Leonardo...

O assunto é esta postagem do Leonardo na primeira página deste tópico :
Caso não tenha o xharbour e bcc configurado, pode baixar Clicando Aqui, que esse instalador faz tudo sozinho para você.
Só agora eu comecei a precisar do LetoDB e como nao tenho o xharbour+Bcc do exemplo postado pelo Leonardo na primeira página, tentei usar o link q ele postou pra baixar e instalar os 2 produtos, porém http://www.4shared.com/file/67805627/21 ... ur100.html já não funciona mais, está quebrado

Alguém pode re-postar, pra que eu siga todos os passos e venha a ter sucesso??

Obrigado
lugab
Lucio
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 24 Fev 2011 18:02
Localização: jaciara/MT

RDD LETO Sem Mistério

Mensagem por Lucio »

Quero agradecer ao Janio pela resposta.
Realmente preciso migrar para o Harbour. A questão é sempre o tempo curto apesar de ja ter os tópicos que ajudam. :-´ Se alguém se interessar em fazer uma assessoria (cobrada) para que eu possa ganhar tempo, entre em contato por favor.

Obrigado.

lucio3105@hotmail.com
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

RDD LETO Sem Mistério

Mensagem por Toledo »

Lucio escreveu:Realmente preciso migrar para o Harbour.
Amigo, veja este tópico:
Migrar Clipper para Harbour

Veja também:
LetoDb e Harbour, como usar

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
tchadrack
Usuário Nível 1
Usuário Nível 1
Mensagens: 27
Registrado em: 15 Mar 2016 15:42
Localização: São Paulo

RDD LETO Sem Mistério

Mensagem por tchadrack »

Estou com um problema, acho que pode ser um BUG no leto:

Fiz algumas alterações no meu sistema, ao ponto que está sendo possível conectar remotamente utilizando o leto.

O sistema até funciona, mas dá este bug ao tentar executar uma determinada função do programa que realiza diversas operações de leitura e escrita no banco de dados sequencialmente, e rapidamente.

As outras partes do sistema em que as operações no banco não são tão rápidas, funciona normalmente

Segue o log do letodb:

02/02/17 17:21:26: Leto DB Server has been started.
Leto DB Server v.2.17b3 ! INIT: DataPath=C:\SCL, ShareTables=0, MaxUsers=500, MaxTables=5000, CacheRecords=50

----------------->>>>> ERROR! thread2() leto_SockRecv LETO_MSGSIZE_LEN <<<<<<<<<-----


Alguém sabe como eu resolvo isto? :%




editado: só um detalhe, também estou começando a usar o leto agora, pode ser algum erro meu.. eu tenho que alterar alguma coisa na maneira como acesso o banco de dados?
tchadrack
Usuário Nível 1
Usuário Nível 1
Mensagens: 27
Registrado em: 15 Mar 2016 15:42
Localização: São Paulo

RDD LETO Sem Mistério

Mensagem por tchadrack »

Obs.: o leto foi compilado em meu computador, eu não baixei ele pré-compilado (poderia ser erro de compilação?)
Nunca usei leto, na verdade não estou acostumado a programar em clipper / harbour.

Fiz um backup dos prg (fontes) antes de iniciar as alterações. Estou fazendo esses testes para saber se vai ficar bom com o letodb e portanto decidir se vou ou não implementar definitivamente o leto.

Complementando a mensagem anterior, hoje estava fazendo mais alguns testes, está dando erro na função
DBSEEK (QUANDO EXECUTADO DE UM COMPUTADOR REMOTO) ( Seek wposicao)

Este erro não acontece ao rodar o sistema no mesmo computador onde o leto está instalado, mesmo usando o RDDLETO.

Apesar disto, algumas telas do sistema onde deveria por exemplo aparecer uma lista com dados, simplesmente não aparece nada quando estou usando localmente (no mesmo computador onde o leto está instalado)

Alguém lança uma luz?
tchadrack
Usuário Nível 1
Usuário Nível 1
Mensagens: 27
Registrado em: 15 Mar 2016 15:42
Localização: São Paulo

RDD LETO Sem Mistério

Mensagem por tchadrack »

Já resolvi o problema.

Além de utilizar o leto, também migrei o sistema para utilizar o cdx.
Até agora nos testes (ainda preciso fazer mais testes) o sistema aparentemente está funcionando bem.
Não sei porque o problema acima aconteceu, mas depois que recompilei o leto e até agora não deu problema mais..

Antes o sistema usava NTX (quando deu o problema).

não conheço o leto nem procurei perder tempo com isso, mas a julgar pela mensagem do erro, ERROR! thread2() leto_SockRecv LETO_MSGSIZE_LEN
poderia ser erro de buffer overflow?

Se for erro de bof, existe a possibilidade de o servidor leto ser potencialmente vulnerável, o que vocês acham?

Quanto ao meu sistema ele lê um determinado arquivo ini e pode ser configurado para usar a rdd leto ou para ser utilizado da maneira tradicional facilmente.


As 'listas vazias' aconteciam porque ao usar o leto (ou cdx) a tabela era carregada no final do arquivo (eof). Então depois de localizar o problema com o debug, adicionei um pequeno trecho de código para resolver o problema.

Ainda preciso fazer testes mais exaustivos nas diversas funções que compõe
o sistema antes de 'colocar em produção' mas parece que está funcionando.


Agradeço aos que ajudaram.
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

RDD LETO Sem Mistério

Mensagem por deividdjs »

boa tarde prezados ..
graças ao nosso amigo Itamar .. consegui migrar para o LETODB ficou muito bom ..

porem eu notei que no servidor windows server 2019 o sistema ficou bastante lento em rede .. existe alguma configuração ou algo que eu possa fazer para melhorar essa velocidade ?

a lentidão é em uma rotina de vendas onde eu crio um arquivo temporario para alteração do mesmo ... nada muito sofisticado heheh e bem corriqueiro por sinal ..

se alguem tiver uma luz ai só prender o grito !

segue uma das rotinas que fica lento...

Código: Selecionar todos

		   tmp := "tm" + substr(time(),4,2) + substr(time(),7,2) + "apv"  && ALTERACAO PEDIDO VENDA
		   cdx := "tm" + substr(time(),4,2) + substr(time(),7,2) + "apv"
			
			aDBF := pdp->(dbstruct()) // cria a estrutura vazia               
			           
			dbcreate( cPathLeto+tmp, aDBF, "LETO")
			
			use (tmp) alias tmp exclusive new
		
		   index on cc_codped                             tag ptmcx_01 to (cdx)  
		   index on cc_codprod                            tag ptmcx_02 to (cdx)  
		   index on (cc_codprod + cc_codped)              tag ptmcx_03 to (cdx)  
		   index on cc_descr                              tag ptmcx_04 to (cdx)  
			  
			select TMP
		  	ordsetfocus("PTMCX_01")
		
			select PDP
			PDP->(ordsetfocus("PDPCX_01"),DBseek(c_codped))
		
		   do while cc_codped == c_codped 
			 
			   aList := {}
				FOR nCont = 1 TO FCount()
			       AAdd( aList, FieldGet( nCont ) )
				NEXT
			 
			   select TMP
			   ADIC_REG();bloq_reg()
				FOR nCont = 1 TO FCount()
			       FieldPut( nCont, aList[ nCont ] ) 
				NEXT
		     	DBCOMMIT()                              
		      DBUNLOCK()                                  
		
		      select PDP
				DBSKIP()
		
			 enddo


abraço a todos!

Deivid
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RDD LETO Sem Mistério

Mensagem por JoséQuintas »

Vixe...
Assim fica lento geral mesmo.

1) Coloque sempre ! Eof()
2) Não precisa criar array, faça direto
3) Esqueça nesse caso lock, unlock e commit, é temporário, quer controle de rede pra que? só pra ficar lento?
4) Pra que criar índice antes? pra perder tempo controlando atualização?

Aprenda com SQL
O comando extrai os dados, e indexa no final.
Índices são pra acelerar extração de dados e não pra trazer na ordem que quer.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RDD LETO Sem Mistério

Mensagem por JoséQuintas »

Acelerar ao máximo ?
Tenho dúvida sobre mudança de índice, então talvez isto:

Código: Selecionar todos

cTmp := "temp"
SELECT PDP
OrdSetFocus("PDPCX_01")
SEEK c_codPed
INDEX ON CC_CODPROD TAG PRODUTO TO ( cTmp ) WHILE CC_CODPED == c_CodPed
OrdSetFocus("PDPCX_01")
SEEK c_codPed
INDEX ON CC_DESCR TAG NOME TO ( cTmp ) WHILE CC_CODPED == c_CodPed
SET INDEX TO ( cTmp )
Se só tem um pedido, porque vai indexar por pedido, e por produto + pedido ?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

RDD LETO Sem Mistério

Mensagem por deividdjs »

Neste caso é um pedido somente porém aí trás os itens dentro do pedido para alteração ..
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

RDD LETO Sem Mistério

Mensagem por Itamar M. Lins Jr. »

Olá!
Acredito que neste caso não está usando o LetoDbf.
Parece que está usando local.
Aqui vc cria o arquivo com cPathLeto que neste caso não precisa.

dbcreate( cPathLeto+tmp, aDBF, "LETO")

Depois abre sem o arquivo sem cPathLeto e sem o FLAG(parametro) -> VIA LETO
use (tmp) alias tmp exclusive new
É bom usar assim para se certificar.
use (tmp) alias tmp exclusive new VIA "LETO" //Ok !?

Append() não precisa de bloq_req()
dbcommit() não precisa.

Veja ai se está usando o LetoDb mesmo. pq sua mensagem ficou ambígua:
consegui migrar para o LETODB ficou muito bom ..
Depois vc diz:
porem eu notei que no servidor windows server 2019 o sistema ficou bastante lento em rede ..
Não deu pra entender ou tá bom ou tá ruim.

Eu uso aqui, não vejo tanta disparidade usando LetoDb no meu computador win10 e no outro do cliente win10.
Não uso mais windows server nenhum. Não tem mais necessidade. Caso precise de mais velocidade monto o LetoDb no Linux que é bem mais rápido, mas é muito mais rápido mesmo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

RDD LETO Sem Mistério

Mensagem por deividdjs »

Está tudo em Leto .. até porque se eu não colocar o pathleto conforme está aí quando eu seto no servidor ele não funciona .. dá erro !! Na parte que falei q ficou bom foi que agora funciona de qq lugar sem precisar usar o RDP do Windows .. funcionou perfeitamente tudo .. só essa pequena lentidão na alteração dos pedidos de venda e compra.. mais vou tirar o commit e o Unlock .. realmente não há necessidade e nem me fixei nisto .. o arquivo é exclusivo … vou fazer as modificações e ver como vai se comportar em rede .. valeu amigo!! Tá ficando muito legal … próximo passo ou instalar a base no Linux e testar .. imagino q vai ficar top mesmo .. servidor em Linux é top! Obrigado por me enquanto .: abraço a todos !
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

RDD LETO Sem Mistério

Mensagem por deividdjs »

Bom dia Prezados ...

FIZ o teste com LETO via acesso remoto .. ficou muuuuuito lento a conexão, via RDP ainda no meu caso é a melhor opção ... bem mais rapido !!

tem alguma configuração que eu possa mudar para melhorar a performasse ??

Att,

Deivid
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Responder