Page 1 of 1

AYUDA CON ADO POR FAVOR

Posted: Sat Apr 19, 2008 7:27 pm
by Vladimir Zorrilla
Amigos tengo problemas para conectar el recosrdet

me logro conectar al servidor pero para lanzar un query con adoadodb.recordset me sale el siguiente error

Error description: Error adodb.recordset/-1 DISP_E_BADPARAMCOUNT: adodb.recordset:ACTIVECONNECTION
Args:
[ 1] = O Object
[ 2] = C Object
[ 3] = O Object
[ 4] = U Object
[ 5] = U Object
[ 6] = U Object
[ 7] = U Object
[ 8] = U Object
[ 9] = U Object
[ 10] = U Object
[ 11] = U Object

Stack Calls
===========
Called from TOLEAUTO:ACTIVECONNECTION(687)
Called from SQL(53)





FUNCTION SQL( cComando)
LOCAL lOK:=.T.
LOCAL cStringConexionLocal:="Provider=SQLOLEDB;server=localhost;database=aduana;integrated security=sspi"//"Provider=SQLNCLI;Server=localhost;Database=aduana;Uid=sa;Pwd="
TRY
oCon:=toleauto():new("adodb.connection")
CATCH oError
MsgStop( "Lnea 19", "rutinasdeconexion.prg")
lOK:=.F.
END
IF lOk
oCon:ConnectionString:=cStringConexionLocal
TRY
oCon:Open()
CATCH oError
lOK:=.F.
oCon:=NIL
END
IF lOk
//creamos un objeto recordset para ejecutar los queries
TRY
oDatos:=TOleAuto():New("adodb.recordset")
CATCH oError
lOK:=.F.
oCon:Close()
oDatos:=NIL
oCon:=NIL
END
IF lOk

oDatos:CursorLocation := 3 //adUseServer //adUseClient
oDatos:LockType := 3 // adLockOptimistic
oDatos:CursorType := 1 // adOpenKeyset
oDatos:Source:=cComando

/////////////// linea 53 aca me sale el error ///////////////////////////

oDatos:ActiveConnection(oCon)



TRY
MsgInfo( "Lnea 112", "rutinasdeconexion.prg")
oDatos:Open()
CATCH oError
MsgStop( "Lnea 115", "rutinasdeconexion.prg")
MsgStop(oError:Operation,"adodb.recordset")
lOK:=.F.
oCon:Close()
oDatos:=NIL
oCon:=NIL
END
ELSE
oCon:Close()
oDatos:=NIL
oCon:=NIL
ENDIF
ELSE
oCon:Close()
oCon:=NIL
ENDIF
ELSE
oCon:=NIL
ENDIF
RETURN lOk


Gracias por la ayuda

Re: AYUDA CON ADO POR FAVOR

Posted: Sat Apr 19, 2008 10:06 pm
by metaldrummer
Vladimir Zorrilla wrote:Amigos tengo problemas para conectar el recosrdet

me logro conectar al servidor pero para lanzar un query con adoadodb.recordset me sale el siguiente error

Error description: Error adodb.recordset/-1 DISP_E_BADPARAMCOUNT: adodb.recordset:ACTIVECONNECTION
Args:
[ 1] = O Object
[ 2] = C Object
[ 3] = O Object
[ 4] = U Object
[ 5] = U Object
[ 6] = U Object
[ 7] = U Object
[ 8] = U Object
[ 9] = U Object
[ 10] = U Object
[ 11] = U Object

Stack Calls
===========
Called from TOLEAUTO:ACTIVECONNECTION(687)
Called from SQL(53)





FUNCTION SQL( cComando)
LOCAL lOK:=.T.
LOCAL cStringConexionLocal:="Provider=SQLOLEDB;server=localhost;database=aduana;integrated security=sspi"//"Provider=SQLNCLI;Server=localhost;Database=aduana;Uid=sa;Pwd="
TRY
oCon:=toleauto():new("adodb.connection")
CATCH oError
MsgStop( "Lnea 19", "rutinasdeconexion.prg")
lOK:=.F.
END
IF lOk
oCon:ConnectionString:=cStringConexionLocal
TRY
oCon:Open()
CATCH oError
lOK:=.F.
oCon:=NIL
END
IF lOk
//creamos un objeto recordset para ejecutar los queries
TRY
oDatos:=TOleAuto():New("adodb.recordset")
CATCH oError
lOK:=.F.
oCon:Close()
oDatos:=NIL
oCon:=NIL
END
IF lOk

oDatos:CursorLocation := 3 //adUseServer //adUseClient
oDatos:LockType := 3 // adLockOptimistic
oDatos:CursorType := 1 // adOpenKeyset
oDatos:Source:=cComando

/////////////// linea 53 aca me sale el error ///////////////////////////

oDatos:ActiveConnection(oCon)



TRY
MsgInfo( "Lnea 112", "rutinasdeconexion.prg")
oDatos:Open()
CATCH oError
MsgStop( "Lnea 115", "rutinasdeconexion.prg")
MsgStop(oError:Operation,"adodb.recordset")
lOK:=.F.
oCon:Close()
oDatos:=NIL
oCon:=NIL
END
ELSE
oCon:Close()
oDatos:=NIL
oCon:=NIL
ENDIF
ELSE
oCon:Close()
oCon:=NIL
ENDIF
ELSE
oCon:=NIL
ENDIF
RETURN lOk


Gracias por la ayuda
en la parte del recordset intenta de la siguiente manera:

Code: Select all

oDatos:=CreateObject("adodb.Recordset")
oDatos:CursorLocation  := adUseClient
oDatos:LockType := adLockOptimistic
oDatos:CursorType:=adOpenDynamic
oDatos:Source:=cComando
oDatos:ActiveConnection:=oCon
TRY
   oDatos:Open()
CATCH oError
   FOR EACH oErrorAdo IN oCon:Errors
      MsgInfo( "Descripción:"+oErrorAdo:Description+CRLF+;
                   "Error Nativo:"+Str(oErrorAdo:NativeError)+CRLF+;
                   "Número Error:"+Str(oErrorAdo:Number)+CRLF+;
                   "Origen:"+oErrorAdo:Source+CRLF+;
                   "Estado SQL:"+oErrorAdo:SQLState;
                  )
   NEXT
END
En caso que eso no resulte por lo menos te dará un error más acabado de lo que pasa con tu recordset.....y nos cuentas
Saludos
[/code]