Página 1 de 1
comandos letodb
Enviado: 29 Jun 2015 20:22
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
comandos letodb
Enviado: 30 Jun 2015 09:49
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.
comandos letodb
Enviado: 30 Jun 2015 11:33
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.
comandos letodb
Enviado: 30 Jun 2015 14:24
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.
comandos letodb
Enviado: 30 Jun 2015 21:27
por Ruben Dario
Gracias, Por tu Informacion.
Permite manejar sentencias SQL.
comandos letodb
Enviado: 01 Jul 2015 09:39
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.