Page 1 of 1

error de ADO consultando XBrowse

Posted: Tue Apr 28, 2009 3:07 pm
by jfafive
Hola!

Estoy haciendo un XBRowse que a medida que avance o retroceda por el XBrowse,
también lo hace un recordset ajeno al XBrowse.

Ambos recordset son de la misma tabla.
La finalidad, es que el recordset tenga la misma posición que el browse.

El código de ejemplo es este:

Code: Select all

REDEFINE XBROWSE oXbr ;
   RECSET oRs ID ID_BRW OF oDlg AUTOSORT ;
   ON CLICK oRs2:Move( oXbr:nRowSel )
 
Pero no sé que ocurre, porque me dá un error que dice:

Code: Select all

 Error description: Error ADODB.RecordSet/6  DISP_E_UNKNOWNNAME: MOVE
   Args:
     [   1] = N   10
Es muy raro. Ya que los dos recordset como he dicho antes, son gemelos.
:(

Re: error de ADO consultando XBrowse

Posted: Tue Apr 28, 2009 3:29 pm
by jfafive
:oops:

Me respondo a mi mismo.
Parece ser que me estaba haciendo un lío con rs:move.

Ahora parece que funciona bien.
Dejo el código por si a alguien le sirve.

Un saludo.

Code: Select all

REDEFINE XBROWSE oXbr ;
   RECSET oRs ID ID_BRW OF oDlg AUTOSORT ;
   ON CLICK oRs2Form:AbsolutePosition := oRs:BookMark
 

Re: error de ADO consultando XBrowse

Posted: Tue Apr 28, 2009 5:12 pm
by mchumpitazv
Hola Javier

Al ver que estas trabajando con Ado tal vez puedas ayudarme con el siguiente problema:

#include "Ado.ch"
FUNCTION MainCmd()
LOCAL oConexionAdo := TOLEAUTO():New("adodb.connection")
LOCAL oComando := TOLEAUTO():New("adodb.command")
LOCAL oRecordset , reg1
LOCAL aDatos := {}
oConexionAdo:Open("Provider=SQLOLEDB.1;Password=;Persist Security Info=False;User ID=Martin;Initial Catalog=APPLOCAL;Data Source=PERLIM_SYS_LCH")
oComando:ActiveConnection(oConexionAdo)
oComando:CommandType:= 4
oComando:CommandText := "sp_Menu"
oRs := TOleAuto():New( "ADODB.Recordset" )
oRs:CursorType := adOpenKeyset
oRs:CursorLocation := adUseClient
oRs:LockType := adLockOptimistic
oRs:Open(oComando:Execute())
reg1:=oRs:bookMark() ------------------> esta linea me muestra el error Error ADODB.Recordset/6 DISP_E_UNKNOWNNAME: BOOKMARK

DO WHILE .NOT. oRs:Eof()
AADD(aDatos,oRs:Fields(0):value)
oRs:MoveNext()
ENDDO
MsgList(aDatos)
RETURN (.T.)mchumpitazv

Te agradecere me puedas orientar a como solucionar el impase , si tuvieses algun ejemplo tambien ayudaria

Saludos

Luis

Re: error de ADO consultando XBrowse

Posted: Wed Apr 29, 2009 12:02 pm
by jfafive
Luis,

ten en cuenta que

Code: Select all

reg1:=oRs:bookMark()
, BookMark es una propiedad nó un método.
Por tanto, sobran los paréntesis.

Lo correcto sería:

Code: Select all

reg1:=oRs:bookMark
Espero haberte ayudado.
Un saludo,

Javier.

Re: error de ADO consultando XBrowse

Posted: Wed Apr 29, 2009 3:56 pm
by mchumpitazv
Hola Javier

Gracias por responder, aun quitandole los parentesis el error es el mismo, por lo que procedi a evaluar si el recordset acepta bookmark y el resultado fue FALSO
y no le encuentro logica ya que el recordset esta definido de la sgte manera:

oRs := TOleAuto():New( "ADODB.Recordset" )
oRs:CursorType := adOpenKeyset ------> se supone que acepta bookmark
oRs:CursorLocation := adUseClient
oRs:LockType := adLockOptimistic
oRs:Open(oComando:Execute())
oRs:Supports(adbookmark) ----------------------> retorna False

Espero puedas seguir apoyandome,por cierto trabajo con FWH 8.10 , SQL 2000 y Xharbour

Saludos

Luis

Re: error de ADO consultando XBrowse

Posted: Wed Apr 29, 2009 4:59 pm
by jfafive
Luis,

En la línea

Code: Select all

oRs:CursorType := adOpenKeyset
,
yo utilizo un cursor dinamico.

Code: Select all

oRs:CursorType := adOpenDynamic
A ver si así te sirve.
:)