Clipper On Line • Ver Tópico - RDD LETO Sem Mistério

RDD LETO Sem Mistério

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

Moderador: Moderadores

 

RDD LETO Sem Mistério

Mensagempor Itamar M. Lins Jr. » 23 Abr 2013 19:47

O tópico é sobre como usar o letodb...
Sua insatisfação não tem nada a ver, em está denegrindo a ferramenta que muitos estão usando.
Quanto ao xHarbour a turma já sabe muito bem minha opinião, mataram a galinha dos ovos de ouro.
O Antonio, e alguns brasileiros... aproveitadores...Quanto pagou para usar o SQLRDD ? está satisfeito ? então beleza! está usando o VXH ? que bom!
Porém todos estão migrando para o Harbour e o próprio pessoal do Harbour 4 apenas estão fazendo algo, e não sabemos quanto tempo mais eles irão tocar o barco, para o pessoal do xHarbour, copiar quase tudo, para depois vender.

Não estou indicando nada que a pessoa não possa testar antes, avaliar, etc, e ainda sou tratado dessa forma.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

RDD LETO Sem Mistério

Mensagempor rochinha » 23 Abr 2013 22:56

Amiguinhos,

Em toda e qualquer discussão, às vezes nossos ânimos se elevam com facilidade, pois estamos defendendo nossas ferramentas.

Mas vejamos que estamos defendendo e brigando por algo intangível, ou seja, idéias.

Portanto deixemos de lado toda e qualquer diferença e voltemos ao que realmente interessa.

Eu não uso o LetoDB, apesar de achar o nome muito bonito, mas na prática, não fiz uso. Mas o assunto me interessa pois para colocar algo em produção preciso saber de quem já usa, o que fez, como fez e a avaliação.

Toquemos os tópicos com perguntas relacionadas ao mesmo afim de aprofundar nossos conhecimentos.

Postem as dúvidas sobre o mesmo e se possível exemplos(sou do tempo que livros de programação vinham recheados de exemplos práticos). Precisamos testar para avaliar.

Não vou pedir desculpas a ninguém e nem mesmo chamar a atenção também. Somos profissionais, somos mestres, mas somos também aprendizes.

Queremos ver neste tópico, informações, vantagens e criticas sobre LetoDB.

Valeu!
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4207
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 495 vezes
Mens.Curtidas: 182 vezes

RDD LETO Sem Mistério

Mensagempor frazato » 25 Abr 2013 11:31

Bom dia ! Após tentar usar o LetoDB a um tempo atras e não conseguir fazer oque queria, tinha deixado ele de lado, mais a uns dias atras tive que fazer um modulo de cotação online, pegue um codigo do qual eu já tinha em xharbour 99.70 com gtwvw e mudei para harbour e fiz algumas mudança na maneira de tratar os dados mesmo sendo em DBF e boa consegui rodar a unica coisa que está me dando um trabalho mais já desisti foi de fazer a tela fica maximizada mais isso e coisa da Gtwvw que também não pretendo mudar a curto prazo.

caso alguém queira dar uma olha, segue o link para baixar o executável.

Tá mais rápido do que o acesso normal, a unica coisa que não funcionar e trabalhar na mesma pasta do sistema, ou seja, ou acesso o DBF pelo LetoDB ou pelo DBFCDX ao mesmo tempo não funciona.

http://www.4shared.com/file/v2wW_Bwm/cotacao_local.html

Qq duvida me avise.

Frazato

frazato@ibest.com.br
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

RDD LETO Sem Mistério

Mensagempor Itamar M. Lins Jr. » 26 Abr 2013 08:59

Ola!
Testou com essa variável ?
Share_Tables = 0 - if 0 (default, this mode server was the only from the
start of a letodb project), the letodb opens all
tables in an exclusive mode, what allows to increase
the speed. If 1 (new mode, added since June 11, 2009),
tables are opened in the same mode as client
applications opens them, exclusive or shared, what
allows the letodb to work in coexistence with other
types of applications.

Irei testar isso em breve... estava funcionando depois parou, agora eu não sei.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

RDD LETO Sem Mistério

Mensagempor frazato » 26 Abr 2013 11:28

Bom dia! fiz um teste rápido e funciona, mais vou testar melhor, só que não tinha esta opção em meu arquivo de configuração do Leto, cara isso ira me resolver vários problemas, pois não preciso ficar sincronizando dados mais, gostei mesmo, obrigado.

Frazato
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

RDD LETO Sem Mistério

Mensagempor jc101b » 17 Jun 2013 20:13

Ola Pessoal...
eu tb to mexendo no letodb...
Essa para o Itamar...
em algum lugar eu vi uma implementação que vc, acho, fez no errorsys.prg para letodb, no caso da perda de conexão de rede.
ou se alguem ai tiver esse codigo poderia mandar pra mim ou postar aqui para os demais colegas..

atenciosamente,
JC
jc101b
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 17 Jun 2013 19:12
Cidade/Estado: Santo Angelo-RS
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Copiar Arquivo do Servidor para o Cliente usando o LetoDB

Mensagempor jc101b » 04 Jul 2013 19:59

Tem alguma função no letodb que copie um arquivo do servidor para o cliente(computador local)???
ou alguem tem uma ideia de como executar essa copia via letodb??
Atenciosamente,
JC
jc101b
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 17 Jun 2013 19:12
Cidade/Estado: Santo Angelo-RS
Curtiu: 0 vez
Mens.Curtidas: 1 vez

RDD LETO Sem Mistério

Mensagempor jc101b » 05 Jul 2013 09:59

Ola Pessoal...
eu precisava essa função pra copiar o executavel do Servidor para o pc do Cliente.
estudando cheguei a essa função.. funciona blz
--------------------------------------------------------------------------
FUNC letoFileCopy(cFile,cNew) // leto_FileRead( cFile, nStart, nLen, @cBuf )
local nH,nLenFile,tm,xx,cBuf
nLenFile:=Leto_FileSize(cFile) ; nH:=fCreate(cNew,FC_NORMAL) ; xx:=0
while xx<nLenFile
cBuf:=Space(2048)
if (tm:=Leto_FileRead(cFile,xx,2048,@cBuf))>0 ; xx+=tm ; fWrite(nH,cBuf) ; end
end
fClose(nH)
return xx==nLenFile
--------------------------------------------------------------------------
jc101b
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 17 Jun 2013 19:12
Cidade/Estado: Santo Angelo-RS
Curtiu: 0 vez
Mens.Curtidas: 1 vez

RDD LETO Sem Mistério

Mensagempor jelias » 20 Out 2013 21:08

Amiguinhos,

Não estou conseguindo atualizar o LETODB. Por gentileza, se alguém puder me dar uma força. Segue informações de como estou fazendo:

Na pasta do LETODB estou clicando com o botão direito do mouse e em CVS Obter Módulo..., que está configurada assim:

ABA MÓDULO
CVSROOT :pserver:anonymous@letodb.cvs.sourceforge.net:/cvsroot/letodb checkout -r rel-1-mt letodb
PROTOCOLO: Servidor de Senha
PARÂMETROS DO PROTOCOLO:
SERVIDOR: letodb.cvs.sourceforge.net
PORTA:
PASTA DO REPOSITÓRIO: /cvsroot/letodb checkout -r rel-1-mt letodb
NOME DE USUÁRIO: anonymous
MÓDULO: letodb

ABA REVISÃO
Marquei
(x) Escolher Marcador ou Ramo
Nome do ramo ou marcador: rel-1-mt

Recebo como retorno:
Erro, operação do cvs falhou:

E abre uma tela onde me pede senha:
Já digitei de tudo.

Aproveitando a mensagem, quero compartilhar com os amigos que consegui rodar o LETODB em um cliente com a ajuda do Basso e do Leonardo Machado, depois de apanhar bastante. Por falta de conhecimento, deixei escapar um detalhe importante na configuração do servidor e por isso gostaria de compartilhar aqui os detalhes:

-Minha estrutura de rede é composta por um servidor usando Windows Server 2008 Enterprise. Estações Windows´XP e Windows 7.
- Após a instalação do LETODB no servidor, seguindo os passos já apresentados no tópico, não conseguia estabelecer conexão com o servidor. O fato é que é necessário liberar no Firewall a porta :2812 usada pelo LETODB. Para tanto, irei deixar este link aos interessados nos detalhes destes procedimentos de configuração.
http://www.maxsistem.com.br/ajuda/index/secao/id/66/assunto/suporte-tecnico-como-liberar-porta-no-firewall-do-windows-xp-7-e-server-2008
Sei que muitos já devem saber disso, mais como esbarrei neste detalhe, penso ser prudente compartilhar com os colegas.

Após várias tentativas sem sucesso, enfim obtive sucesso e fui aos testes. Uma grande motivação, foi a busca de reduzir o tempo de um relatório de vendas que é muito usado em análise no dia-a-dia de trabalho. Este relatório lista todos os itens, de forma acumulada por período. Fiz um teste com este cenário em uma mesma estação.

Vendas de Produtos 01/01/2013 à 30/03/2013 -> DBF/CDX: 480-segundos Terminal Service: 4-segundos LETODB: 86-segundos
Vendas de Produtos 01/01/2012 á 31/12/2013 -> DBF/CDX: 1.746-segundos Terminal Service: 11-segundos LETODB: 303-segundos

LETODB foi muito mais rápido que DBF/CDX nativo, entretanto teve grande diferença para o Terminal Service. Como pode haver algum detalhe relacionado ao código, deixo abaixo o mesmo para apreciação dos colegas.

#include "INKEY.CH"
#include "CLUBE.CH"
FUNCTION REL_VENDPR(aPhis)
local Atel:=savescreen(00,00,24,79)
local tyAp:=type("aPhis")
ABREARQ(,{"AL_SAIDA","AL_CLIEN","AL_VENDE","AL_SAISN","AL_CIDAD","AL_PEDSN","AL_ESTOQ","AL_PEDID","AL_ITPED","AL_ITPSN","AL_GRUPO"})
do whil .t.
   rest screen from aw_tel_master
   SETBLINK(.F.)
   WIN3D("Informe o per¡odo",04,02,06,54,2,"9")
   v_dat1=CTOD("  /  /  ")
   v_dat2=CTOD("  /  /  ")
   @ 05,03 say "Per¡odo de     = " get v_dat1 pict"@D" VALID( v_dat1 != CTOD("  /  /  ") )
   @ 05,33 say "At‚  = "           get v_dat2 pict"@D" VALID( v_dat2 != CTOD("  /  /  ") )
   read
   if (LASTKEY()==27)
      SETBLINK(.T.)
      ABREARQ(,.F.)
      RESTSCREEN(00,00,24,79,Atel)
      retu
   end
   a1=time()
   sele AL_SAIDA
   DBSETORDER(2)
   ORDSCOPE(0,DTOS(v_dat1))
   ORDSCOPE(1,DTOS(v_dat2))
   DBGOTOP()

   sele AL_SAISN
   DBSETORDER(6)
   ORDSCOPE(0,DTOS(v_dat1))
   ORDSCOPE(1,DTOS(v_dat2))
   DBGOTOP()

   sele AL_SAIDA
   if EOF()
      MENSAGEM("Aten‡Æo, nÆo foi econtrado dados neste per¡odo !!!",3)
      loop
   end
   WIN3D("",10,02,12,46,2,"9"); @ 11,04 say "Gerando relatorio, Aguarde ..............."
   vDados:={}
   vRuim:={}
   sele AL_SAIDA
   bQua:=bVal:=0
   @ 20,01 say a1
   a2=time()
   @ 20,15 say a2
   do whil !EOF()
      if ((AL_SAIDA->tiposa#"01" .and. AL_SAIDA->tiposa#"02") .or. cancel="*")
    skip
    loop
      end
      bSeek=ncarga+codped
      sele AL_ITPED
      DBSEEK(bSeek)
      do whil (!EOF() .and. ncarga=AL_SAIDA->ncarga .and. codped=AL_SAIDA->codped)
    if condic=" "
       IF ASCAN(vDados, {|a| A[1] = AL_ITPED->codite })#0
          vVar=ASCAN(vDados, {|a| A[1]=AL_ITPED->codite })
          sele AL_ESTOQ
          DBSETORDER(1)
          DBSEEK(AL_ITPED->codite)
          vDados[vVar][3]=(vDados[vVar][3]+AL_ITPED->quanti)
          vDados[vVar][5]=(vDados[vVar][5]+(AL_ITPED->quanti*AL_ESTOQ->pesoun))
          vDados[vVar][6]=(vDados[vVar][6]+AL_ITPED->pretot)
          if AL_ITPED->pretot<=0
        AADD(vRuim, AL_SAIDA->ncarga+AL_SAIDA->codped)
          end
       else
          sele AL_ESTOQ
          DBSETORDER(1)
          DBSEEK(AL_ITPED->codite)
          AADD(vDados, {AL_ITPED->codite,AL_ESTOQ->descri,AL_ITPED->quanti,0,(AL_ITPED->quanti*AL_ESTOQ->pesoun),AL_ITPED->pretot,AL_ESTOQ->codgru})
          if AL_ITPED->pretot<=0
        AADD(vRuim, AL_SAIDA->ncarga+AL_SAIDA->codped)
               end
       end
       bQua=(bQua+AL_ITPED->quanti)
       bVal=(bVal+AL_ITPED->pretot)
    end
    sele AL_ITPED
    skip
      end
      sele AL_SAIDA
      skip
   end
   sele AL_SAISN
   do whil !EOF()
      if ((AL_SAISN->tiposa#"01" .and. AL_SAISN->tiposa#"02") .or. cancel="*")
    skip
    loop
      end
      bSeek=ncarga+codped
      sele AL_ITPSN
      DBSEEK(bSeek)
      do whil (!EOF() .and. ncarga=AL_SAISN->ncarga .and. codped=AL_SAISN->codped)
    if condic=" "
       IF ASCAN(vDados, {|a| A[1] = AL_ITPSN->codite })#0
          vVar=ASCAN(vDados, {|a| A[1]=AL_ITPSN->codite })
          sele AL_ESTOQ
          DBSETORDER(1)
          DBSEEK(AL_ITPSN->codite)
          vDados[vVar][4]=(vDados[vVar][4]+AL_ITPSN->quanti)
          vDados[vVar][5]=(vDados[vVar][5]+(AL_ITPSN->quanti*AL_ESTOQ->pesoun))
          vDados[vVar][6]=(vDados[vVar][6]+AL_ITPSN->pretot)
          if AL_ITPSN->pretot<=0
        AADD(vRuim, AL_SAISN->ncarga+AL_SAISN->codped)
               end
       else
          sele AL_ESTOQ
          DBSETORDER(1)
          DBSEEK(AL_ITPSN->codite)
          AADD(vDados, {AL_ITPSN->codite,AL_ESTOQ->descri,0,AL_ITPSN->quanti,(AL_ITPSN->quanti*AL_ESTOQ->pesoun),AL_ITPSN->pretot,AL_ESTOQ->codgru})
          if AL_ITPSN->pretot<=0
        AADD(vRuim, AL_SAISN->ncarga+AL_SAISN->codped)
               end
       end
       bQua=(bQua+AL_ITPSN->quanti)
       bVal=(bVal+AL_ITPSN->pretot)
         end
    sele AL_ITPSN
    skip
      end
      sele AL_SAISN
      skip
   end
   a3=time()
   @ 20,30 say time()
   inkey(0)
   vb_texto=" Periodo de "+DTOC(v_dat1)+" Ate "+DTOC(v_dat2)
   Opc_Rel(08,50,22,75,1,Date())
   if (trab_nkey==17 .or. trab_nkey==27 .or. trab_nkey==4)
      restscreen(00,00,24,79,Atel)
      loop
   elseif (trab_nkey==1)
      trab_impr:='I'
      set print on
      set devi to print
   elseif (trab_nkey==2 .or. trab_nkey==3)
      trab_impr:='V'; v_arqt=iif(trab_nkey==2,'.\textos\spool.prn',GERAREL())
      set print to &v_arqt
      set devi to print
   end
   v_tot1=0.00
   v_tot2=0.00
   v_tot3=0.00
   v_tot4=0.00
   v_tot5=0.00
   v_tot6=0.00
   v_tot7=0.00
   v_tot8=0.00
   x_tot1=0.00
   x_tot2=0.00
   x_tot3=0.00
   x_tot4=0.00
   x_tot5=0.00
   x_tot6=0.00
   x_tot7=0.00
   l=99
   p=1
   oDados:=ASORT(vDados,,, {|x,y| x[7]+x[2] < y[7]+y[2]} )
   vTotk=0 ; vTotr=0
   for i:=1 to LEN(vDados)
       vTotk=(vTotk+vDados[i][5])
       vTotr=(vTotr+vDados[i][6])
   next
   vCont=1
   cCodGrupo=""
   do whil (LEN(oDados)>=vCont .and. inke()!=27)
      if l>=58
    Cabecalho("RELATORIO DE VENDAS/PRODUTO",130,p,'chr(15)','chr(14)+chr(15)')
         @ 08,01  say "|"+vb_texto
         @ 08,130 say "|"
    @ 09,01  say "+-------------------------------------------+------+---------------------------------------------------------+-------------------+"
    @ 10,01  say "|                                           |      |    A N A L I S E    D O    Q U A D R O    V E N D A S   |   VALORES (R$)    |"
    @ 11,01  say "|                                           |      +----------+----------+------------+---------------+------+-------------+-----+"
    @ 12,01  say "|              NOME DO PRODUTO              |CODIGO|1a. Quin. |2a. Quin. |   TOTAL    |   TOTAL (kg)  | (%)  |    VENDAS   | (%) |"
    @ 13,01  say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
    p++
    l=14
      end
      if VAL(oDados[vCont][1])=0
    vCont++
    if LEN(oDados)<vCont .or. l>=58
       @ l,01  say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
       @ l+1,1 say "|                VALOR TOTAL ====>          |      |"+TRANS(v_tot1,"999999.999")+"|"+TRANS(v_tot2,"999999.999")+"|"+TRANS(v_tot1+v_tot2,"99999999.999")+"|"+TRANS(v_tot4,"999999999999.999")+"|      |"+TRANS(v_tot5,"@E 99,999,999.99")+"|     |"
       @ l+2,1 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
       @ l+3,1 say "+"+REPL("=",128)+"+"
       @ l+4,1 say "+------------------------------------+"
       @ l+5,1 say "| Valor dos Cortes => "+TRANS(v_tot6,"@E 999,999.99")+"     |"
       @ l+6,1 say "| (%) dos Cortes   => "+TRANS( (v_tot6/bVal)*100,"99.99")+"          |"
       @ l+7,1 say "+------------------------------------+"
    end
    loop
      end
      if cCodGrupo#oDados[vCont][7]
    sele AL_GRUPO
    DBSETORDER(1)
    DBSEEK(oDados[vCont][7])
    @ l,1      say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
    if trab_impr="I"
       @ l+1,1   say CHR(27)+"E"+"|       Grupo : "+oDados[vCont][7]+" - "+AL_GRUPO->descri
       @ l+1,132 say "|"+CHR(27)+"F"
    else
       @ l+1,1   say "|       Grupo : "+oDados[vCont][7]+" - "+AL_GRUPO->descri
       @ l+1,130 say "|"
    end
    @ l+2,1   say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
    l=l+3
    cCodGrupo=oDados[vCont][7]
      end
      @ l,01 say "|"+LEFT(oDados[vCont][2],43)+"|"+LEFT(oDados[vCont][1],6)+"|"+TRANS(oDados[vCont][3],"999999.999")+"|"+TRANS(oDados[vCont][4],"999999.999")+"|"+TRANS(oDados[vCont][3]+oDados[vCont][4],"99999999.999")+"|"+TRANS(oDados[vCont][5],"99999999999.999")+"| "+;
       TRANS( ((oDados[vCont][3]+oDados[vCont][4])/bQua)*100,"99.99")+"|"+TRANS(oDados[vCont][6],"@E 99,999,999.99")+"|"+TRANS( (oDados[vCont][6]/bVal)*100,"99.99")+"|"
      v_tot1=(v_tot1+oDados[vCont][3])
      v_tot2=(v_tot2+oDados[vCont][4])
      v_tot3=(v_tot3+0.00)
      v_tot4=(v_tot4+oDados[vCont][5])
      v_tot5=(v_tot5+oDados[vCont][6])
      v_tot6=(v_tot6+0.00)
      x_tot1=(x_tot1+oDados[vCont][3])
      x_tot2=(x_tot2+oDados[vCont][4])
      x_tot3=(x_tot3+0.00)
      x_tot4=(x_tot4+oDados[vCont][5])
      x_tot5=(x_tot5+oDados[vCont][6])
      x_tot6=(x_tot6+0.00)
      vCont++
      l++
      if LEN(oDados)<vCont .or. IIF(LEN(oDados)>=vCont,cCodGrupo#oDados[vCont][7],)
    @ l,01  say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
    if trab_impr="I"
       @ l+1,1 say CHR(27)+"E"+"|       TOTAL VENDAS DO GRUPO ===>          |      |"+TRANS(x_tot1,"999999.999")+"|"+TRANS(x_tot2,"999999.999")+"|"+TRANS(x_tot1+x_tot2,"99999999.999")+"|"+TRANS(x_tot4,"99999999999.999")+"|"+TRANS(((x_tot4/vTotk)*100),"999.99")+"|"+TRANS(x_tot5,"@E 99,999,999.99")+"|"+TRANS(((x_tot5/vTotr)*100),"99.99")+"|"+CHR(27)+"F"
    else
       @ l+1,1 say "|       TOTAL VENDAS DO GRUPO ===>          |      |"+TRANS(x_tot1,"999999.999")+"|"+TRANS(x_tot2,"999999.999")+"|"+TRANS(x_tot1+x_tot2,"99999999.999")+"|"+TRANS(x_tot4,"99999999999.999")+"|"+TRANS(((x_tot4/vTotk)*100),"999.99")+"|"+TRANS(x_tot5,"@E 99,999,999.99")+"|"+TRANS(((x_tot5/vTotr)*100),"99.99")+"|"
    end
    @ l+2,1 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
    l=l+3
    x_tot1=0.00
    x_tot2=0.00
    x_tot3=0.00
    x_tot4=0.00
    x_tot5=0.00
    x_tot6=0.00
    x_tot7=0.00
      end
      if LEN(oDados)<vCont
    @ l,01  say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
    @ l+1,1 say "|                VALOR TOTAL ====>          |      |"+TRANS(v_tot1,"999999.999")+"|"+TRANS(v_tot2,"999999.999")+"|"+TRANS(v_tot1+v_tot2,"99999999.999")+"|"+TRANS(v_tot4,"99999999999.999")+"|      |"+TRANS(v_tot5,"@E 99,999,999.99")+"|     |"
    @ l+2,1 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
    @ l+3,1 say "+"+REPL("=",128)+"+"
    @ l+4,1 say "+------------------------------------+"
    @ l+5,1 say "| Valor dos Cortes => "+TRANS(v_tot6,"@E 999,999.99")+"     |"
    @ l+6,1 say "| (%) dos Cortes   => "+TRANS( (v_tot6/bVal)*100,"99.99")+"          |"
    @ l+7,1 say "+------------------------------------+"
      elseif l>=58
    @ l,01  say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
    @ l+1,1 say "+"+REPL("=",128)+"+"
      end
   end
   if (trab_impr=='V'); set print to ; end
   if (trab_impr=='I'); eject; end
   set devi to screen
   if (trab_nkey==3)
      set print to
      Rel_Video(subs(v_arqt,10))
      Dele file &v_arqt
   end
   restscreen(00,00,24,79,Atel)
endd



Sds,

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: 210
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 9 vezes

RDD LETO Sem Mistério

Mensagempor clrod » 18 Nov 2013 10:32

Para o Julio e os demais:

O Letodb é uma boa opção sem dúvida, embora nada se compare a refazer tudo p/ usar o SQL (puro, não SQLRDD, uma das maiores atrocidades que já vi). Já se falou bastante das vantagens disso e não vou entrar em detalhes. Não discuto que o Letodb ajuda bem, funciona legal mas não é a solução definitiva que deveria ser tomada. Porém tem uma solução muito melhor que o LetoDB para quem não pode ir para uma solução melhor. E o Julio achou ela.

Se você acha que precisa do LetoDB, você deveria então usar o Terminal Service ou outra ferramenta (VNC, SSH em Linux, etc) para acessar a aplicação remotamente no servidor e não acessar o dbf remotamente principalmente direto. O LetoDB já ajuda bem na performance e confiabilidade mas não é a melhor solução. Fazer a aplicação rodar efetivamente no servidor e acessar o dbf direto será mais vantajoso que usar o LetoDB porque terá muito mais performance, terá pelo menos a mesma confiabilidade, diminuirá tráfego da rede, facilitará a administração de tudo, evitará concorrência real já que tudo terminará mais rápido e não precisará mudar nada no código, nem uma linha sequer.

Se você fizer isso e tiver qualuer problema com acesso aos arquivos, coisa que já deveria ser rara mesmo fazendo do jeito pior (acessando o dbf diretamente pela rede) você pode procurar por sérios problemas em sue programa. DBF acessado localmente, principalamente no Harbour que está bem mais livre de bugs para dar problema, é difícil a não ser que o programa colabore. DBF e principalmente seus índices tem que ser bem administrado pelo programador. SQL é mais automático, mas DBF exige entendimento do programador do que pode ou não fazer.

Já vi mais de 1000 terminais simultâneos acessando aplicação no servidor (Linux) e acessando o dbf direto pelas instâncias das aplicações rodando nele sem problemas e rapidamente. Escolher essa opção é revolucionário. Achava que muitas pessoas já tinham descoberto isso. Hoje um servidor de menos de 5 mil reais pode rodar centenas de instâncias de uma aplicação console acessando dbf. Um computador pouco ultrapassado roda dezenas.
clrod
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 79
Data de registro: 17 Nov 2009 12:42
Cidade/Estado: São Paulo - SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

RDD LETO Sem Mistério

Mensagempor Itamar M. Lins Jr. » 28 Nov 2013 15:09

Ola!
Muito bom seu post, eu usei LINUX lá da época do Conectiva Linux, estava naquele boom!
Não tem comparação uma aplicação harbour no linux via ssh usei muito tempo. Nunca me deu dor de cabeça, usava Conectiva+RaiserFs+SSH+Harbour.
Porém naquela época tinha problema de suporte com drive disso, drive daquilo que não rodava no linux :( Impressão vixi! era o calcanhar de Aquiles do linux.
Via TS também é outra boa alternativa.
Outra causa que deixei de usar o linux foi o ECF, NFe e outras tantas que na época não tinha no Linux, hoje quem sabe já tem essas coisas com mais facilidade.

Porém o LETODB se encaixa no caso das bases não poderem rodar todas em um único servidor, ou em uma LAN (interna) com 20/30 maquinas.
No windows tem o problema das licenças do TS, que o Letodb resolve.
Empresas com CNPJ diferente, que precisa dos estoques, contas a receber, clientes, no próprio local, para posteriormente serem integrados via algum relatório...
É uma solução rápida, enquanto o programador procura outra melhor.

Isso p/ quem usa console ainda, pois tela gráfica no linux é mais complicado p/ quem usa [x]Hb.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

RDD LETO Sem Mistério

Mensagempor rossine » 20 Dez 2013 14:10

Boa tarde,

Segui as dicas dos companheiros para atualizar o leto aqui e está pedido senha no CVS.

Qual seria esta senha ou estou fazendo o procedimento de atualização errado ?

Obrigado,

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

RDD LETO Sem Mistério

Mensagempor Itamar M. Lins Jr. » 16 Jan 2014 12:03

Repassando msg do Alexander...
Hello,

thanks for the interest to LetoDb.
The current working repository is the Sourceforge CVS, rel-1-mt branch, it isn't outdated, the last update was today ( the information in the Sourceforge's letodb main page isn't correct - that's result of a bug in Sourceforge software ).
You may use the following console command to download it:

cvs checkout -r rel-1-mt -P letodb

The github repository is my personal, I use it for testing purposes.

Regards, Alexander.

I used

cvs -d:pserver:anonymous@letodb.cvs.sourceforge.net:/cvsroot/letodb checkout -r rel-1-mt letodb

and work fine

Regards
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

RDD LETO Sem Mistério

Mensagempor runner » 17 Mar 2014 10:25

Olá a Todos.

Estou fazendo um teste com a LETODB e felizmente conseguir gerar as libs, só que estou com dificuldade de saber qual e a ultima versão estável desta ferramenta para comparar com a que peguei, se puderem me dar um caminho agradeço.

Runner
Harbour 3.2 + Minigui Extended 16 + xDev
runner
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 69
Data de registro: 03 Ago 2007 05:17
Cidade/Estado: GUARULHOS-SP
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

RDD LETO Sem Mistério

Mensagempor runner » 17 Mar 2014 13:42

Ola, Pessoal.

Consegui baixar a versão mais recente, só que agora quando executo o LETODB.EXE no arquivo de log aparace a seguinte mensagem :

LetoDB service has had some problems: 1063

Já fiz a instalação do serviço, com letodb.exe install e continua não inicializando o servidor, se alguém tiver alguma dica, por favor....
Harbour 3.2 + Minigui Extended 16 + xDev
runner
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 69
Data de registro: 03 Ago 2007 05:17
Cidade/Estado: GUARULHOS-SP
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Anterior Próximo



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