No me permite usar el metodo MoveLast

juanki
28 de Agosto del 2003
Hola

He definido un recordset y lo he abierto con una consulta que me devuelve un cierto numero de registros, en concreto 3. No tengo problemas a la hora de utilizar el metodo MoveNext e ir listando los campos de cada registro, sin embargo no puedo utilizar el metodo MoveLast, me da un error, concretamente: "El conjunto de filas no admite recuperación hacia atrás". Tampoco me funciona el metodo MovePrevious, pero como ya he dicho si que funciona el MoveNext. ¿Alguien sabria ayudarme?

Gracias

P.D. Resumiendo, MoveFirst y MoveNext funcionan
MoveLast y MovePrevious no funcionan

Miguel
28 de Agosto del 2003
Hola Juanki, me imagino que estas utilizando un "cursor" de tipo adOpenForwardOnly, que solo permite hacer MoveNext y además es el que se utiliza por defecto si no indicas lo contrario.

Te sugiero que definas un objeto recordset

set rs=Server.CreateObject("ADODB.recordset") y a continuación que ejecutes:

rs.Open SQL,CON,2,3,&H0001

Esto generará un recordset en base a la instrucción que entres en SQL

El 2 indica un tipo de cursor adOpenDynamic que te permetirá moverte a tu antojo por el recordset.

El 3 indica adLockOptimistic, referente al bloqueo que aplicará a la BD mientras tu la tienes en uso.

El&H0001 indica que lo que hay en SQL es una sentencia SQL (tambien podria ser el nombre de una tabla &H0002 o un procedimiento almacenado &H0004)

Tambien puedes definir estos valores como constantes:

'Tipos de cursores
Const adOpenForwardOnly = 0

Const adOpenKeyset = 1

Const adOpenDynamic = 2

Const adOpenStatic = 3
-------------------------
'tipos de Bloqueo
Const adLockReadOnly = 1

Const adLockPessimistic = 2

Const adLockOptimistic = 3

Const adLockBatchOptimistic = 4

------------------------------

`---- Tipos de comando SQL ----

Const adCmdUnknown = &H0008

Const adCmdText = &H0001

Const adCmdTable = &H0002

Const adCmdStoredProc = &H0004