Consulta Ado con Fw vs VB - Solucionado
Posted: Sat Jun 20, 2015 9:47 pm
Hola Gente:
Buenas tardes.
Para solicitarles su ayuda en este tema.
Estoy accesando a una Bd Progress y hago una consulta para traer en un Recordset.
El tema es que haciendo la misma consulta con Fw y comparando con VB6.
- Tiempo con FW = 03:00 minutos.
- Tiempo con VB6= 00:10 sgdos.
Algo estaré haciendo incorrectamente ?
Pego aquí el código que estoy utilizando:
y este es con VB6
Atte.
Lucho Montero.
Lima - Perú.
-----------------------------------------------------------------------
FW 12.04 + xHarbour 123 + Borland 582
Buenas tardes.
Para solicitarles su ayuda en este tema.
Estoy accesando a una Bd Progress y hago una consulta para traer en un Recordset.
El tema es que haciendo la misma consulta con Fw y comparando con VB6.
- Tiempo con FW = 03:00 minutos.
- Tiempo con VB6= 00:10 sgdos.
Algo estaré haciendo incorrectamente ?
Pego aquí el código que estoy utilizando:
Code: Select all
FUNCTION fConecSrvAdo(xcCnxStr,xnCursor)
LOCAL xoCnxSrv:=NIL, oError
MsgWait( "Estableciendo conexión con el Servidor ...")
xnCursor :=IF(xnCursor==NIL,adUseServer,xnCursor) // adUseClient
TRY
xoCnxSrv := TOleAuto():New( "ADODB.Connection" )
CATCH oErr
MsgStop("No se puede establecer conexion con el Servidor de Base Datos ...!")
ShowErrorCnx( oErr )
RETURN NIL
END
xoCnxSrv:ConnecTionString:=xcCnxStr
xoCnxSrv:CursorLocation :=xnCursor
TRY
xoCnxSrv:Open()
CATCH oErr
MsgStop("No se puede establecer conexion con el Servidor de Base Datos ...!")
ShowErrorCnx( oErr )
RETURN NIL
END
RETURN xoCnxSrv
*
/*** Función para Crear RecordSet ***/
* xoCnxSrv : Servidor Conectado
* xcCmdSql : Consulta Sql
* xnCursor : Que lado estará el cursor del Server o Cliente.
* xnLockType: Bloqueo del cursor.
* xnCurType : Tipo de cursor
*
FUNCTION fCreaRecSet(xoCnxSrv, xcCmdSql, xnCursor, xnLockType, xnCurType)
LOCAL oRsLocal, oError
TRY
oRsLocal := TOleAuto():New( "ADODB.RecordSet" )
CATCH oError
MsgStop('No se puede establecer conexion con Recordset ...!')
ShowErrorCnx( oError )
RETURN NIL
END
xnCursor :=IF(xnCursor=NIL,adUseServer,xnCursor) // adUseClient
xnLockType:=IF(xnLockType=NIL,adLockOptimistic,xnLockType)
xnCurType :=IF(xnCurType=NIL,adOpenKeyset,xnCurType)
oRsLocal:CursorLocation:=xnCursor
oRsLocal:LockType :=xnLockType
oRsLocal:CursorType :=xnCurType
oRsLocal:Source :=xcCmdSql
oRsLocal:ActiveConnection:=xoCnxSrv
TRY
oRsLocal:Open()
CATCH oError
MsgStop('No se puede establecer conexion con Recordset ...!')
ShowErrorCnx( oError )
RETURN NIL
END
IF !oRsLocal:EOF()
oRsLocal:MoveFirst()
ENDIF
RETURN oRsLocal
*
/*** Manejador error para Conexion Server ***/
FUNCTION ShowErrorCnx( oError )
LOCAL cError := ""
cError += " Descripción : " + oError:Description
cError += " SubSystem : " + oError:SubSystem
cError += " Error Number : " + Str( oError:SubCode )
cError += " Severity : " + Str( oError:Severity )
RETURN NIL
Code: Select all
/ *** Conectando con el Servidor. ***/
Set cCnx = New ADODB.Connection
cCnx = "DSN=Chessgps;HOST=chess;PORT=2500;DB=distrib;UID=SYSPROGRESS;PWD=ch1573"
With cCnx
' Cursor en Cliente para poder usar un DataGrid
.CursorLocation = adUseClient
' Abro la conexión con la base de datos usando un DSN
.Open cCnx
End With
/*** Conectando al Recordset.***/
Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open SQL, cCnx, adOpenStatic
Set rs.ActiveConnection = Nothing
Lucho Montero.
Lima - Perú.
-----------------------------------------------------------------------
FW 12.04 + xHarbour 123 + Borland 582