jueves, 25 de junio de 2009

De vuelta VeRCE

Amigos,

Pues con la novedad que hemos decidido darle nueva sangre al VeRCE, recodificando todo para darle más velocidad a la hora de compilar.

Espero comentarios para incluir en VeRCE, he enterado a Juán Carlos Salínas Ojeda de este proyecto sobre el VeRCE para que esté al pendiente y pueda ayudarnos en la nueva era.

Se espera la participación de los colegas que usan VeRCE para hacer una herramienta más estable y mas amigable.

Saludos

Transacciones en MySql

Amigos,

A petición de un gran amigo de la comunidad César Cortez.

Como hacer transacciones con TMySql.

oMysql:begintransaction()
lError := .f.
oCliente:fieldput( "saldo", nSaldo )
lError := oCliente:update()
IF !lError
oVenta:fieldput( "venta", nVenta )
oVenta:fieldput( "cliente", cCliente )
lError := oVenta:append()
ENDIF

IF !lError
oMysql:Commit()
ELSE
oMysql:rollback()
ENDIF

Es un ejemplo sencillo, pero es para que tengan un idea de como aplicarlo.

Saludos

domingo, 7 de junio de 2009

Función para browsear TYMSQL

Aquí la función que se ha usado y se seguirá usando por lo menos eso espero.

FUNCTION MySetBrowse( oBrw, oDataSource )
local lRet := .t.
local bGoTop, bGoBottom, bSkipper
local cClsName

bGoTop := { || oDataSource:GoTop() }
bGoBottom := { || oDataSource:GoBottom() }
bSkipper := { | n | oDataSource:Skipper( n ) }

cClsName := upper( oBrw:ClassName() )

oBrw:bGoTop := bGoTop
oBrw:bGoBottom := bGoBottom

IF cClsName == "TWBROWSE"
oBrw:bSkip := { | n | oDataSource:Skip( n ) }
ELSE
oBrw:bSkip := bSkipper
ENDIF

if cClsName == "TXBROWSE"
oBrw:bBof := { || oDataSource:Bof() }
oBrw:bEof := { || oDataSource:Eof() }
oBrw:bBookMark :={ | n | if( n == nil, oDataSource:RecNo(), oDataSource:GoTo( n ) ) }
oBrw:bKeyNo := { || oDataSource:RecNo() }
oBrw:bKeyCount := { || oDataSource:RecCount() }
ELSE
oBrw:bLogicLen := { || oDataSource:RecCount() }
ENDIF
if oBrw:oVScroll() != nil
oBrw:oVscroll():SetRange( 1, oDataSource:RecCount() )
ENDIF
oBrw:Refresh()

return( lRet )

//**

Bueno, ahí está

Saludos