Error ADODB.Recordset error '800a0cb3'

19/08/2004 - 19:24 por fjmasero | Informe spam
Wenas:

Estoy desarrollando para un portal con páginas asp
(vbscript). El gestor de bases de datos es SQL Server
2000.

Sin embargo, los accesos a la base de datos los hago
mediante una dll realizada en VB 6.0.

En una clase de la dll tengo el siguiente código:


lsSQL = "SELECT TOP " & piNumReg * piNumPag & " *
from Empleo"

'Definicion de la consulta
Dim loCmd As ADODB.Command
Set loCmd = New ADODB.Command
Set loCmd.ActiveConnection = Conexion
loCmd.CommandText = lsSQL
loCmd.CommandType = ADODB.adCmdText

'Obtenemos el resultado de la consulta almacenandolo
en un RecordSet
Dim loRs As ADODB.Recordset
Set loRs = New ADODB.Recordset
loRs.Open loCmd, , ADODB.adOpenStatic,
ADODB.adLockOptimistic

'Nos posicionamos en el primer registro de la pagina
loRs.PageSize = piNumReg
If loRs.RecordCount <> 0 Then loRs.AbsolutePage =
piNumPag


Las vars piNumReg y piNumPag son parametros recibidos en
el método en cuestión.

Pues si en vez de hacer el select del inicio, hago Select
DISTINCT TOP ..., y el resto =, me da el siguiente
error:

ADODB.Recordset error '800a0cb3'
El Recordset actual no admite marcadores. Puede ser una
limitación del proveedor o del tipo de cursor
seleccionado.

Y la única diferencia es el distinct.

He probado este Select Distinct Top ... desde el
Analizados de Consultas y funciona bien.

¿xq puede ser?.

Salu2 y gracias
 

Leer las respuestas

#1 Jhonny Vargas P.
24/08/2004 - 16:46 | Informe spam
Has tratado de utilizar

Clng(piNumReg) * Clng(piNumPag )


Saludos,
Jhonny Vargas P.


"fjmasero" wrote in message
news:938001c48611$52582190$
Wenas:

Estoy desarrollando para un portal con páginas asp
(vbscript). El gestor de bases de datos es SQL Server
2000.

Sin embargo, los accesos a la base de datos los hago
mediante una dll realizada en VB 6.0.

En una clase de la dll tengo el siguiente código:


lsSQL = "SELECT TOP " & piNumReg * piNumPag & " *
from Empleo"

'Definicion de la consulta
Dim loCmd As ADODB.Command
Set loCmd = New ADODB.Command
Set loCmd.ActiveConnection = Conexion
loCmd.CommandText = lsSQL
loCmd.CommandType = ADODB.adCmdText

'Obtenemos el resultado de la consulta almacenandolo
en un RecordSet
Dim loRs As ADODB.Recordset
Set loRs = New ADODB.Recordset
loRs.Open loCmd, , ADODB.adOpenStatic,
ADODB.adLockOptimistic

'Nos posicionamos en el primer registro de la pagina
loRs.PageSize = piNumReg
If loRs.RecordCount <> 0 Then loRs.AbsolutePage piNumPag


Las vars piNumReg y piNumPag son parametros recibidos en
el método en cuestión.

Pues si en vez de hacer el select del inicio, hago Select
DISTINCT TOP ..., y el resto =, me da el siguiente
error:

ADODB.Recordset error '800a0cb3'
El Recordset actual no admite marcadores. Puede ser una
limitación del proveedor o del tipo de cursor
seleccionado.

Y la única diferencia es el distinct.

He probado este Select Distinct Top ... desde el
Analizados de Consultas y funciona bien.

¿xq puede ser?.

Salu2 y gracias

Preguntas similares