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

El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicita

Estas en el tema de El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicita en el foro de ASP Clásico en Foros del Web. El siguiente código me produce el error El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere ...
  #1 (permalink)  
Antiguo 15/08/2005, 22:14
 
Fecha de Ingreso: octubre-2004
Ubicación: Venezuela
Mensajes: 111
Antigüedad: 19 años, 7 meses
Puntos: 0
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicita

El siguiente código me produce el error El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.
Estando la base de datos llena. Si alguien puede ver se lo agradeceré mucho.

<%
'se abre la base de datos
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\base_datos.mdb"))

'se crea un recordset con los datos de la tabla chat
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM chat"
rs.Open SQL,conexion, 3,3


if rs.bof = true or rs.eof = true then
'no hagas nada
else
%>
<table>
<tr><td>
<% rs.MoveLast %>

<%
n=0
Do while (n < 10) %>
<B><%=RS("usuario")%>:</B><%=RS("comentarios")%><BR>
<%
RS.MovePrevious
n=n+1
Loop
%>
</td></tr>
</table>
<%
end if%>
__________________
Has resucitado mi :corazon: que estaba muerto y sin salvación
  #2 (permalink)  
Antiguo 16/08/2005, 04:16
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
yo por lo general solo pongo if rs.eof then... y listo prueba haciendolo asi... saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 16/08/2005, 04:23
 
Fecha de Ingreso: septiembre-2004
Mensajes: 179
Antigüedad: 19 años, 8 meses
Puntos: 0
Buenas,

si en esa tabla hay menos de 10 registros acabarás llegando al BOF y, aparte de al principio, no vuelves a comprobar que te sales.

Lo que no entiendo muy bien es por qué vas al final y vuelves hacia atrás ¿? No sería mejor hacer el select con un orden inverso?

SELECT * FROM chat ORDER BY <campo> DESC

donde <campo> es algún campo que se incremente en cada registro (Id, fecha, etc) Luego haces un while not rs.EOF y así no corres el riesgo de salirte del recordset.
__________________
Estoy en www.aibarra.net

Camino para preguntar: manual -> Google -> FAQs y buscador del foro -> Nuevo Tema.
Tan difícil es escribir correctamente? Es más fácil leerlo. Pónselo fácil al que quiera ayudarte.
  #4 (permalink)  
Antiguo 16/08/2005, 18:04
 
Fecha de Ingreso: octubre-2004
Ubicación: Venezuela
Mensajes: 111
Antigüedad: 19 años, 7 meses
Puntos: 0
gracias voy a intentarlo
__________________
Has resucitado mi :corazon: que estaba muerto y sin salvación
  #5 (permalink)  
Antiguo 21/08/2005, 18:52
 
Fecha de Ingreso: octubre-2004
Ubicación: Venezuela
Mensajes: 111
Antigüedad: 19 años, 7 meses
Puntos: 0
NO funciona de ninguna manera
__________________
Has resucitado mi :corazon: que estaba muerto y sin salvación
  #6 (permalink)  
Antiguo 21/08/2005, 19:57
 
Fecha de Ingreso: julio-2003
Mensajes: 43
Antigüedad: 20 años, 10 meses
Puntos: 0
Rossana,
Prueba con esto

Código:
	If rs.EOF And rs.BOF Then
	  Response.Write("No se encontraron resultados")
	Else
          Response.Write("HAY RESULTADOS!!!")
        EndIf
  #7 (permalink)  
Antiguo 22/08/2005, 20:26
 
Fecha de Ingreso: octubre-2004
Ubicación: Venezuela
Mensajes: 111
Antigüedad: 19 años, 7 meses
Puntos: 0
Ya conseguí el error era el ciclo do while, quite el n<10 ya que la tabla tenia menos de 10 registros, y coloque rs.eof =false.

Saludos
Gracias por sus respuestas.
__________________
Has resucitado mi :corazon: que estaba muerto y sin salvación
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 22:04.