Visual Basic - Error ADODB.Recordset error '800a0cb3'

Life is soft - evento anual de software empresarial
 
Vista:

Error ADODB.Recordset error '800a0cb3'

Publicado por fjmasero (2 intervenciones) el 19/08/2004 19:27:23
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.

También he probado diferentes combinaciones en el loRs.Open..., y na'.

¿xq puede ser?.

Salu2 y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder