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

operación solicitada requiere un registro actual

Estas en el tema de operación solicitada requiere un registro actual en el foro de ASP Clásico en Foros del Web. Hola me estoy conectando a una bd y no se por que me sale este error, si estoy poniendo "si no es fin de archivo ...
  #1 (permalink)  
Antiguo 11/10/2004, 23:32
Avatar de speedy  
Fecha de Ingreso: octubre-2004
Ubicación: México
Mensajes: 127
Antigüedad: 20 años, 7 meses
Puntos: 0
operación solicitada requiere un registro actual

Hola me estoy conectando a una bd y no se por que me sale este error, si estoy poniendo "si no es fin de archivo entra" y me sale este error:

Tipo de error:
ADODB.Field (0x80020009)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.

En le campo Rotar voy a estar cambiando 0 y 1 para que esten rotando los banners, ahorita tengo 3 registros y en cada uno un cero en campo Rotar, si en el registro 1 tengo 0 se ve el banner 1, si a este registro le pongo 1, se ve el registro 2 si al registro 2 le pongo 1 se ve en la paguina el banner del registro 3, pero si le pongo 1 al registro 3, me sale el error, en vez de un error lo que requiero es que una vez que el query recorrio todos los registro buscando el 0 empiece a buscar desde el inicio ahora el numero uno, y asi tipo bandera, quisa este muy simple pero no le encuentro, abajo esta el codogo que estoy utilizando, GRACIAS POR SUS COMENTARIOS.
<%
Dim adoCon 'Database Connection Variable
Dim strCon 'Holds the Database driver and the path and name of the database
Dim rsCheckUser 'Database Recordset Variable
Dim strSQL 'Database query sring
Set adoCon = Server.CreateObject("ADODB.Connection")
strCon = "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=letmein; DBQ=" & Server.MapPath("../db/bannerRotInicio.mdb")
adoCon.Open strCon
Set rsCheckUser = Server.CreateObject("ADODB.Recordset")
num = 0
strSQL = "SELECT * FROM Banners WHERE Rotar = "&num&" "
rsCheckUser.Open strSQL, strCon
paso = "s"
If NOT rsCheckUser.EOF and paso = "s" Then ' pasa un banner con numero 0
%>
cosas
<%=rsCheckUser("NombreBanner")%>
<%end if%>
__________________
Saludos :cool: y Suerte :arriba:
valle del mezquital en el Estado de Hidalgo
  #2 (permalink)  
Antiguo 12/10/2004, 01:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98

Bueno,primero pásale la conexión activa cuando abres el recordset:

rsCheckUser.Open strSQL, adoCon

Otra cosa, el campo rotar es de tipo numérico? si es así con esto es suficiente:

strSQL = "SELECT * FROM Banners WHERE Rotar =" & num

A ver si esto lo remedia...

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 12/10/2004, 01:56
Avatar de speedy  
Fecha de Ingreso: octubre-2004
Ubicación: México
Mensajes: 127
Antigüedad: 20 años, 7 meses
Puntos: 0
Gracias u_goldman, ya la hice funcionar y jala de las dos formas con adoCon y con strCon, creo que el problema era el while y el if junto con el query, quedo asi...

adoCon.Open strCon
Set rsCheckUser = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM Banners "
rsCheckUser.Open strSQL, adoCon
paso = "s"
While Not rsCheckUser.EOF
Rotar = rsCheckUser("Rotar")
If Rotar = 0 and paso = "s" Then

Pero no entiendo lo que me comentaste de "conexión activa" cual seria la diferencia, de hecho nunca he utilizado mis conecciones como me dijiste, como es mejor o que onda... gracias.
__________________
Saludos :cool: y Suerte :arriba:
valle del mezquital en el Estado de Hidalgo
  #4 (permalink)  
Antiguo 12/10/2004, 02:05
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
No se si sea mejor, solo que me parece extraño que abras una conexión, mediante tu variable strCon

strCon = "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=letmein; DBQ=" & Server.MapPath("../db/bannerRotInicio.mdb")
adoCon.Open strCon

Y luego le pases al recordset, el mismo string, si es que ya tienes una conexión

rsCheckUser.Open strSQL, strCon

Pero finalmente lo que importa es que funcione!

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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




La zona horaria es GMT -6. Ahora son las 15:01.