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:
Código:
Las vars piNumReg y piNumPag son parametros recibidos en .... 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 ....
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