Page 1 of 1

Busqueda incremental con TMySql de xHarbour ???

Posted: Sun Jan 06, 2008 5:47 pm
by gabo
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

Posted: Sun Jan 06, 2008 11:50 pm
by jbrita
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

Posted: Mon Jan 07, 2008 3:51 pm
by gabo
jBrita, lo implementare, para ver su funcionamiento.. Gracias !!

Posted: Mon Jan 28, 2008 4:09 am
by miragerr
Ola amigo

Fiquei curioso de como fazer isso com o TMYSQL

pode colocar um exemplo melhor:

Iniciando o TMySQL
Abrindo a TABELA
e Fazendo a consulta

Fico no aguardo

Posted: Wed Jan 30, 2008 1:43 am
by gabo
miragerr

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
Abriendo una Tabla y una consulta

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
Saludos