Foros del Web » Programando para Internet » ASP Clásico »

Error ADODB.Recordset error '800a0cb3'

Estas en el tema de Error ADODB.Recordset error '800a0cb3' en el foro de ASP Clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 18/08/2004, 01:14
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 4 meses
Puntos: 1
Pregunta Error ADODB.Recordset error '800a0cb3'

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:
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
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #2 (permalink)  
Antiguo 18/08/2004, 10:40
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 2 meses
Puntos: 146
Aca al soluciones en un post anterior (http://desaweb.forosdelweb.com/s6e66...msg156756.html), en ese post las soluciones no le sirvieron por que usaba MySQL pero seguro a ti si te servirán.

Saludos
  #3 (permalink)  
Antiguo 19/08/2004, 00:39
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 4 meses
Puntos: 1
Hola Myakire:

Gracias por contestar.

Perdoname, pero, seguramente por mi torpeza, no veo en que me puede ayudar el post que me indicas.

Como Isanchez, tb he probado diferentes combinaciones en el .Open, y na'.

Salu2
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #4 (permalink)  
Antiguo 31/08/2004, 03:53
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 4 meses
Puntos: 1
¿Nadie me ayuda?
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #5 (permalink)  
Antiguo 27/09/2005, 10:42
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1
Antigüedad: 18 años, 6 meses
Puntos: 0
El error es de codigo:

Revisa la siguiente linea de codigo:

loRs.Open loCmd, , ADODB.adOpenStatic,
ADODB.adLockOptimistic

debes verificar que si piensas trabajar con paginacion debes tomar en cuenta los tipos de cursores:

en resumen, verifica que el record set tenga las siguientes propiedades:
sdt_rst.CursorType = 3
sdt_rst.LockType = 1

o en tu caso:

loRs.Open dataSQL, conn, 3, 1, &H0001

donde: 3 = adOpenStatic, 1 = adLockReadOnly, &H0001 = adCmdText


para mas informacion puedes revisar estos articulos:

http://www.aspfaq.com/show.asp?id=2320
http://www.aspfaq.com/show.asp?id=2120
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:55.