lunes, 12 de octubre de 2009

TMySql actualizada

Bueno,

El título no se me dió mucho, pero espero esta modificación realizada a la tmysql les sirva de mucho.

Ahora podrá usar TMySql de la siguiente manera.

Aquí el ejemplo:

#include 'fivewin.ch'

*-------------------*
STATIC oServer
STATIC oQry
STATIC oBrw
STATIC oWnd
STATIC oMenu

FUNCTION main()
LOCAL cHost := "localhost"
LOCAL cUser := "root"
LOCAL cPsw := "rooting"
LOCAL nPort := 3306
LOCAL cDb := "test"
LOCAL n := 1
LOCAL cQuery := ""

MENU oMenu 2007
MENUITEM "Pruebas"
MENU
MENUITEM "AddRecord 1" ACTION addrecord1() MESSAGE "Adiciona registros a la tabla 1"
MENUITEM "AddRecord 2" ACTION addrecord2() MESSAGE "Adiciona registros a la tabla 2"
MENUITEM "UpdateRecord" ACTION updaterecord2() MESSAGE "Modifica registros a la tabla 2"
ENDMENU
ENDMENU

oServer:= TMySQLServer():New( cHost, cUser, cPsw, nPort )
if oServer:NetErr()
MsgAlert (oServer:Error(),"MySQL Error")
quit
endif

IF oServer:lError
? "No connect"
RETURN NIL
ENDIF

oserver:Selectdb(cDb)

IF oServer:lError
? "No used database"
RETURN NIL
ENDIF

IF !oServer:tableexist( "prueba" )
cQuery := "CREATE TABLE prueba( "
cQuery += "clave varchar(3) NOT NULL default '0',"
cQuery += "nombre varchar(30) default 'x',"
cQuery += "fecha date default '20091012',"
cQuery += "saldo decimal(9,2) default 0.00,"
cQuery += "PRIMARY KEY (clave) "
cQuery += ") ENGINE=InnoDB DEFAULT CHARSET=latin1"
oServer:execute( cQuery )
ENDIF

oServer:execute( "TRUNCATE TABLE prueba" )
oQry := oServer:Query( "SELECT * FROM prueba" )

oQry:gotop()
wmbrowse()

return nil

/************************************************************/
STATIC FUNCTION wmbrowse()
DEFINE WINDOW oWnd TITLE "Mi browse" FROM 10, 10 TO 30, 60 MENU oMenu

wmbrw()
oWnd:oClient := oBrw

ACTIVATE WINDOW oWnd

RETURN NIL

STATIC FUNCTION wmbrw()
LOCAL oCol

oBrw := TXBrowse():new( oWnd )
SetxBrowse( oBrw, oQry )

oCol := oBrw:AddCol()
oCol:cHeader := "Clave"
oCol:bEditValue := {|| oQry:clave}
oCol:cEditPicture := "@x"
oCol:cDataType := "C"

oCol := oBrw:AddCol()
oCol:cHeader := "Nombre"
oCol:bEditValue := {|| oQry:nombre}
oCol:cEditPicture := "@x"
oCol:cDataType := "C"

oCol := oBrw:AddCol()
oCol:cHeader := "Fecha"
oCol:bEditValue := {|| oQry:fecha}
oCol:cEditPicture := "@d"
oCol:cDataType := "D"

oCol := oBrw:AddCol()
oCol:cHeader := "Saldo"
oCol:bEditValue := {|| oQry:saldo}
oCol:cEditPicture := "999,999,999.99"
oCol:cDataType := "N"

oBrw:createfromcode()

RETURN NIL

STATIC FUNCTION addrecord1()
LOCAL n, nClv

FOR n := 1 TO 15
nClv := alltrim(str( HB_RandomInt( 999 ) ))
oQry:fieldput( "clave" , nClv )
oQry:fieldput( "nombre", "prueba1 - " + nClv )
oQry:fieldput( "fecha" , date() )
oQry:fieldput( "saldo" , HB_RandomInt( 99999999.99 ) )
oQry:append()
NEXT

oBrw:refresh()

RETURN NIL

STATIC FUNCTION addrecord2()
LOCAL n, nClv

FOR n := 1 TO 15
nClv := alltrim(str( HB_RandomInt( 999 ) ))
oQry:blank()
oQry:clave := nClv
oQry:nombre := "prueba2 - " + nClv
oQry:fecha := date()
oQry:saldo := HB_RandomInt( 99999999.99 )
oQry:save()
NEXT

oBrw:refresh()

RETURN NIL

STATIC FUNCTION updaterecord2()
LOCAL n, nClv

oQry:gotop()
WHILE !oQry:eof()
nClv := alltrim(str( HB_RandomInt( 999 ) ))
oQry:nombre := "CAMBIADO - " + nClv
oQry:fecha := date()
oQry:saldo := HB_RandomInt( 99999999.99 )
oQry:save()
oQry:skip()
ENDDO

oBrw:refresh()

RETURN NIL

Espero sea de ayuda y cualquier duda, aquí en el blog hay un chat que leo periódicamente.

Saludos

Aqui el link de bajada de la LIB y un ejemplo.

TMYSQL comunity

No hay comentarios:

Publicar un comentario