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
Para compartir experiencias de TMySql, el compilador xHarbour así como la GUI FWH
jueves, 25 de junio de 2009
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
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
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
Suscribirse a:
Entradas (Atom)