Hola.. algun compañero que haya logrado hacer una busqueda incremental en una tabla usando la clase TMySql de xHarbour.. agradeceria mucho un ejmplo.. gracias !
GABO
Busqueda incremental con TMySql de xHarbour ???
Gabo espero q te sirva:
@ 0.25,34 SAY "Buscar :" OF oBar SIZE 40, 15 FONT oWnd:oFont COLOR CLR_BLUE
@ 0.25,31 GET oGet VAR cBusca OF oBar PICTURE "@S60!";// WHEN .F. ;
SIZE 200,22 FONT oWnd:oFont COLOR CLR_BLUE
oLbx:bKeyDown := {|nKey| ( SeekMySql(nKey,@cBusca,oLbx,oOrden,oTabla),oLbx:Refresh(),oGet:Refresh() )}
STATIC FUNCTION SeekMySql(nKey,cBusca,oLbx,oOrden,oTabla)
*-----------------------------------------------------
oTB:End()
If nKey=8
cbusca:= SubStr(cbusca,1,Len(cbusca)-1)
oTb:=oServer:Query('SELECT * FROM '+oTabla+' WHERE '+oOrden+" LIKE '"+cbusca+"%' ORDER BY "+oOrden)
Else
cbusca:=cbusca + Upper(chr(nkey))
oTb:=oServer:Query('SELECT * FROM '+oTabla+' WHERE '+oOrden+" LIKE '"+UPPER( cBusca)+"%' ORDER BY "+oOrden)
if oTb:reccount() == 0
msginfo('No se encotro el nombre ', "Atencion" )
cbusca:=left(cbusca,len(cbusca)-1)
oTb:=oServer:Query('SELECT * FROM '+oTabla+' WHERE '+oOrden+" LIKE '"+UPPER( cBusca)+"%' ORDER BY "+oOrden)
Endif
Endif
oLbx:REFRESH()
oLbx:oVScroll:SeTPOS(oTB:RECNO())
oTb:refresh()
oLbx:Refresh(.t.)
return nil
@ 0.25,34 SAY "Buscar :" OF oBar SIZE 40, 15 FONT oWnd:oFont COLOR CLR_BLUE
@ 0.25,31 GET oGet VAR cBusca OF oBar PICTURE "@S60!";// WHEN .F. ;
SIZE 200,22 FONT oWnd:oFont COLOR CLR_BLUE
oLbx:bKeyDown := {|nKey| ( SeekMySql(nKey,@cBusca,oLbx,oOrden,oTabla),oLbx:Refresh(),oGet:Refresh() )}
STATIC FUNCTION SeekMySql(nKey,cBusca,oLbx,oOrden,oTabla)
*-----------------------------------------------------
oTB:End()
If nKey=8
cbusca:= SubStr(cbusca,1,Len(cbusca)-1)
oTb:=oServer:Query('SELECT * FROM '+oTabla+' WHERE '+oOrden+" LIKE '"+cbusca+"%' ORDER BY "+oOrden)
Else
cbusca:=cbusca + Upper(chr(nkey))
oTb:=oServer:Query('SELECT * FROM '+oTabla+' WHERE '+oOrden+" LIKE '"+UPPER( cBusca)+"%' ORDER BY "+oOrden)
if oTb:reccount() == 0
msginfo('No se encotro el nombre ', "Atencion" )
cbusca:=left(cbusca,len(cbusca)-1)
oTb:=oServer:Query('SELECT * FROM '+oTabla+' WHERE '+oOrden+" LIKE '"+UPPER( cBusca)+"%' ORDER BY "+oOrden)
Endif
Endif
oLbx:REFRESH()
oLbx:oVScroll:SeTPOS(oTB:RECNO())
oTb:refresh()
oLbx:Refresh(.t.)
return nil
miragerr
Haciendo una conexion con TMySql
Abriendo una Tabla y una consulta
Saludos
Haciendo una conexion con TMySql
Code: Select all
FUNCTION ChkConnection()
LOCAL oServer, aConnect:= { .F., NIL }
oServer:= TMySQLServer():New( "127.0.0.1", "root" )
IF oServer:lError
MsgStop( "No es posible conectarse con el servidor MySQL" + CRLF + ;
oServer:ERROR(), ;
"Error de conexión..." )
oServer:Destroy()
aConnect:= { .F., NIL }
ELSE
// Software Administrativo Integral para el Control de Ventas e Inventarios
IF ! oServer:DBExist( "saicovin" )
IF ! oServer:CreateDatabase( "saicovin" )
MsgStop( "No es posible crear la base de datos principal del sistema..." + CRLF + ;
oServer:ERROR(), ;
"Error de creación..." )
oServer:Destroy()
aConnect:= { .F., NIL }
ELSE
IF ! oServer:SelectDB( "saicovin" )
MsgStop( "No es posible abrir la base de datos principal del sistema..." + CRLF +;
oServer:ERROR(), ;
"Error de apertura..." )
oServer:Destroy()
aConnect:= { .F., NIL }
ELSE
aConnect:= { .T., oServer }
ENDIF
ENDIF
ELSE
IF ! oServer:SelectDB( "saicovin" )
MsgStop( "No es posible abrir la base de datos principal del sistema..." + CRLF + ;
oServer:ERROR(), ;
"Error de apertura..." )
oServer:Destroy()
aConnect:= { .F., NIL }
ELSE
aConnect:= { .T., oServer }
ENDIF
ENDIF
ENDIF
RETURN aConnect
Code: Select all
FUNCTION OpenTables()
LOCAL oServer, aConnect
aConnect:= ChkConnection()
IF ! aConnect[1]
RETURN .F.
ENDIF
oServer:= aConnect[2]
IF oTbClientes != NIL
oTbClientes:Refresh()
ELSE
oTbClientes:= oServer:Query( "SELECT * FROM clientes ORDER BY id_cliente" )
oTbClientes:GoTop()
ENDIF