Amigos,
Tenho uma tabela de produtos com muitos registros, e vou acessar este banco MYSQL remotamente.
Alguem teria uma dica de como criar uma consulta com TSBROWSE/TWBROWSE + SQLRDD, de modo que esta consulta não fique lenta?
Muito Obrigado
oDatos := TMSQuery():New( oMySQL )
oDatos:Open( "SELECT * FROM productos ORDER BY detalle" )
If oDatos:RecCount() > 0
REDEFINE LISTBOX oLbx ;
FIELDS oDatos:FieldGet(1), ;
oDatos:FieldGet(2), ;
oDatos:FieldGet(3) ;
HEADERS "Codigo", ;
"detalle", ;
"precio" ;
SIZES 80,350,100 ;
ID 101 OF oDlg
MySetBrowse(oLbx, oDatos)
EndIf
//Crear el objeto conexión
//--------------------------------------------------
TRY
oCon := TOleAuto():new("adodb.connection")
CATCH oError
MsgStop( "No se pudo crear el objeto conexión !")
RETURN(.F.)
END
cdrive:="MySQL ODBC 5.1 DRIVER"
cserver:="tu IP"
cDB:="nombre_BDatos"
cUser:="nombre_usuario"
cPasw:="clave"
//Abrir la conexión usando el objeto connection creado
//----------------------------------------------------
oCon:ConnectionString :="Driver={"+alltrim(cDrive)+"};Server=" + ALLTRIM(cServer) + ;
";Port=3306;Database=" + ALLTRIM(cDB) + ;
";User=" + ALLTRIM(cUser)+;
"; Password=" + ALLTRIM(cPasW) + ";Option=3;"
TRY
oCon:Open()
CATCH oError
MsgInfo("Falló el intento de conexión con la cuenta "+cuser+" , REVISE LA CONEXION DE SU RED O LA CONEXION A INTERNET !")
RETURN(.F.)
END
//Creamos el objeto recodset
TRY
::oRsBrw= TOleAuto():New("adodb.recordset")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET de la Tabla Seleccionada!", )
ShowError(oError)
::oRsBrw := NIL
RETURN(.F.)
END
//Configuramos el recordset
::oRsBrw:CursorLocation := adUseClient
::oRsBrw:LockType := adLockOptimistic
::oRsBrw:CursorType := adOpenKeyset//adOpenDynamic
::oRsBrw:Source := "SELECT * FROM MITABLA"
::oRsBrw:ActiveConnection(oCon)
//abrimos el recordset
TRY
::oRsBrw:Open()
CATCH oError
MsgStop( "No se pudo abrir La Tabla Seleccionada!")
RETURN(.F.)
END/
::oBrw := TXBrowse():New( ::oWnd )
::oBrw:nleft:=0
::oBrw:ntop:=30
::oBrw:lFastEdit:= .t.
::oBrw:lEditmode:= .t.
::oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL
::oBrw:nColDividerStyle = LINESTYLE_DARKGRAY
::oBrw:SetAdo(::oRsBrw,.t.,.t.)
::oBrw:CreateFromCode()
::oBrw:bpastEof={||MsgBeep()}
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 96 guests