comandos letodb

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

masteragm
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 09 Set 2011 15:09
Localização: santiago

comandos letodb

Mensagem por masteragm »

Hola , podrian explicar el uso de los siguientes comandos letodb y si fuera posible un ejemplo :

LETO_BEGINTRANSACTION( [ nBlockLen ] )
LETO_ROLLBACK()
LETO_COMMITTRANSACTION( [ lUnlockAll ] )

Agradecido

Alejandro Gonzalez
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

comandos letodb

Mensagem por Itamar M. Lins Jr. »

Ola!
Na pasta tests do letodb.

Código: Selecionar todos

/* $Id: test_ta.prg,v 1.2.2.1 2013/12/23 07:45:30 alkresin Exp $ */
/*
 * This sample demonstrates how to use transactions with Leto db server
 * Just change the cPath value to that one you need.
 */

Function Main( cPath )
Field NORD, DORD, NPROD, SUMMA

   REQUEST LETO
   RDDSETDEFAULT( "LETO" )

   IF Empty( cPath )
      cPath := "//127.0.0.1:2812/temp/"
   ELSE
      cPath := "//" + cPath + Iif( Right(cPath,1) $ "/\", "", "/" )
   ENDIF
   ? "Start"
   dbCreate( cPath+"nakl1", { {"NORD","N",10,0},{"DORD","D",8,0},{"SUMMA","N",12,2},{"NORM","M",10,0} } )
   dbCreate( cPath+"nakl2", { {"NORD","N",10,0},{"DORD","D",8,0},{"NPROD","N",3,0},{"SUMMA","N",12,2},{"NORM","M",10,0} } )
   ? "Files has been created"

   use ( cPath+"nakl1" ) New
   index on Dtos(DORD)+Str(NORD,10) TAG DATA
   use ( cPath+"nakl2" ) New
   index on Dtos(DORD)+Str(NORD,10)+Str(NPROD,3) TAG DATA
   ? "Files has been opened and indexed"

   AddNakl( 1, Date(), { 1400.5, 28632.28, 800.51 } )
   AddNakl( 2, Date(), { 58003, 930.5 } )
   ? "Records has been added"

   select NAKL2
   if dbSeek( Dtos(Date())+Str(1,10)+Str(2,3) )
      if ChangeNakl( 35688.24 )
         ? "Records has been changed"
      else
         ? "Failure - Rollback"
      endif
   endif

   ? "End"
   ?

Return Nil

Function AddNakl( n_ord, d_ord, aSumm )
Local i, sumAll := 0

   leto_BeginTransaction()

   select NAKL2
   for i := 1 to Len( aSumm )
      append blank
      replace NORD with n_ord, DORD with d_ord, NPROD with i, SUMMA with aSumm[i]
      sumAll += aSumm[i]
   next

   select NAKL1
   append blank
   replace NORD with n_ord, DORD with d_ord, SUMMA with sumAll

   leto_CommitTransaction()

Return .T.

Function ChangeNakl( nSummNew )
Local nDelta

   leto_BeginTransaction()

   select NAKL1
   if !dbSeek( Dtos(NAKL2->DORD)+STR(NAKL2->NORD) ) .or. !DoRlock( 3 )
      leto_Rollback(.F.)
      Return .F.
   endif

   select NAKL2
   if DoRlock( 3 )
      nDelta := nSummNew - SUMMA
      replace SUMMA with nSummNew
   else
      leto_Rollback()
      Return .F.
   endif

   select NAKL1
   replace SUMMA with SUMMA + nDelta

   leto_CommitTransaction()

Return .T.

Function DoRLock( n )
Local i := 0

   do while i < n
      if Rlock()
         exit
      endif
      Inkey( 0.1 )
      i ++
   enddo

Return ( i < n )
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Ruben Dario
Usuário Nível 3
Usuário Nível 3
Mensagens: 127
Registrado em: 14 Jun 2015 23:19
Localização: Colombia

comandos letodb

Mensagem por Ruben Dario »

Veo que el ejemplo puiblicado, es practicamente similar a los DBF, que diferencia hay.

Trabajar con LETODB o los DBF tradicional como se usa normalmente.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

comandos letodb

Mensagem por Itamar M. Lins Jr. »

Ola!
Bem, é isso mesmo.
Usar Letodb implica em mudança mínima de código.

Agora o Letodb tem recursos extras que o RDD normal não tem, por exemplo usar/chamar funções do lado do servidor, LETO UDF´s, pegar data/hora do servidor, copiar arquivos...
E você pode ou não usar TRANSACTION.

Fica o servidor que é LetoDb monitorando via TCP a porta 2812. Entregando as informações para as estações e usamos sintaxe xBase, isso pode ser criptografado e com senha.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Ruben Dario
Usuário Nível 3
Usuário Nível 3
Mensagens: 127
Registrado em: 14 Jun 2015 23:19
Localização: Colombia

comandos letodb

Mensagem por Ruben Dario »

Gracias, Por tu Informacion.

Permite manejar sentencias SQL.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

comandos letodb

Mensagem por Itamar M. Lins Jr. »

Ola!
Permite manejar sentencias SQL.
Coloque "?" no final p/ sabermos que é uma pergunta.

Não tem sentenças SQL.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder