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

error en asp problema con algo de BOF o EOF

Estas en el tema de error en asp problema con algo de BOF o EOF en el foro de ASP Clásico en Foros del Web. Tipo de error: ADODB.Field (0x800A0BCD) El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro ...
  #1 (permalink)  
Antiguo 01/02/2006, 12:42
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 18 años, 5 meses
Puntos: 8
error en asp problema con algo de BOF o EOF

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

error en linea 14


Cita:
<%
Dim conexion, registros, sql

ejecutiva = request.Form("eje")


Set conexion = Server.CreateObject ("ADODB.Connection")
conexion.Open "DSN=InformeBO"

Set registros = Server.CreateObject ("ADODB.RecordSet")
sql = "SELECT * FROM InforBO WHERE Ejecutivo like '"&ejecutiva&"'"
registros.Open sql, conexion

nombre = registros.fields("Ejecutivo").value
response.write nombre&"nombre"

cont=0
Do while Not registros.EOF
cont = cont + 1
registros.movenext
Loop
registros.Close
Set registros = Nothing

response.write "<link href=""../../Stylos/ProyectoII.css"" rel=""stylesheet"" type=""text/css"">"
response.write "<body leftmargin=""0"" topmargin=""0"" marginwidth=""0"" marginheight=""0"">"
response.write "<table width=""0"" height=""0"" border=""0"" class=""tbl_marco1"">"
response.write " <tr>"
response.write " <td width=""212"" height=""43"" valign=""top""> "
response.write " <table width=""215"" border=""0"">"
response.write " <tr> "
response.write " <td width=""76"" class=""tdti"">Ejecutiva</td>"
response.write " <td width=""56"" class=""tdti"">Reclamos</td>"
response.write " <td width=""64"" class=""tdti"">% Reclamos</td>"
response.write " </tr>"
response.write " <tr>"
response.write " <td class=""tdcon"">"&nombre&"</td>"
response.write " <td class=""tdcon"">"&cont&"</td>"
response.write " <td class=""tdcon"">&nbsp;</td>"
response.write " </tr>"
response.write " </table>"
response.write " </td>"
response.write " <td width=""106"">&nbsp;</td>"
response.write " </tr>"
response.write "</table>"



conexion.Close
Set conexion = Nothing
%>
  #2 (permalink)  
Antiguo 01/02/2006, 12:55
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Código:
 Set registros = Server.CreateObject ("ADODB.RecordSet")
sql = "SELECT * FROM InforBO WHERE Ejecutivo like '"&ejecutiva&"'"
registros.Open sql, conexion

nombre = registros.fields("Ejecutivo").value
response.write nombre&"nombre"
Si el rs esta vacio, esa linea arrojara el error, necesitarias meter todo este proceso dentro de un if

if not rs.eof then
'acciones
else
'rs vacio
end if


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 01/02/2006, 12:58
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Comprueba si el valor de "eje" no venga vacio antes de construir la sentencia sql. Luego la linkaría asi:

set registros = conexion.execute(sql)

Aunque eso depende de gustos, bases de datos y otras cosas (no se si a traves de DSN se puede utilizar esta forma, otros que sepan más de ello podrán responderte).

Un saludo
  #4 (permalink)  
Antiguo 01/02/2006, 13:15
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 18 años, 5 meses
Puntos: 8
ok amigos intentare las dos opciones
  #5 (permalink)  
Antiguo 01/02/2006, 13:18
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 18 años, 5 meses
Puntos: 8
tenias razon el valor de eje viene vacio

pero no se por que mira tengo esto asi :

Cita:
<%
Dim conexion, registros, sql
Set conexion = Server.CreateObject ("ADODB.Connection")
conexion.Open "DSN=InformeBO"

Set registros = Server.CreateObject ("ADODB.RecordSet")
sql = "SELECT * FROM Ejecutivas "
registros.Open sql, conexion

response.write "<html>"
response.write "<head>"
response.write "<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1252"">"
response.write "<title>Año</title>"
response.write "<link href=""Stylos/ProyectoII.css"" rel=""stylesheet"" type=""text/css"">"
response.write "</head>"
response.write "<body leftmargin=""0"" topmargin=""0"" marginwidth=""0"" marginheight=""0"">"
response.write "<p> "
response.write " "
response.write "</p>"
response.write "<table width=""89%"" height=""34"" border=""0"" bgcolor=""999999"">"
response.write " <tr align=""center"" valign=""middle""> "
response.write " <td width=68% height=28 align=center>"
%>
<link href="../Stylos/ProyectoII.css" rel="stylesheet" type="text/css">

<form name="form2" method="POST" action="ejecutivas/individual.asp">
<strong><font color="#FFFFFF" size="2" face="Verdana">Selecione un Ejecutivo</font></strong>
<Select Name="eje">
<%
While Not registros.EOF
%>
<option value="<%=registros("IDEjecutiva")%>"><%=registros ("Ejecutiva")%></option>
<%
registros.MoveNext
Wend
%>
</Select>

<input type="submit" name="Submit" value="VER">
</form>
<%

registros.Close
Set registros = nothing
conexion.Close
Set conexion = nothing
response.write " </td> </tr>"
response.write "</table>"
response.write "</body>"
response.write "</html>"
  #6 (permalink)  
Antiguo 02/02/2006, 03:30
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Aparentemente se ve bien. Es posible que el select no seleccione ninguna opción. Prueba seleccionando una opcion diferente y comprueba que valor llega.


Un saludo
  #7 (permalink)  
Antiguo 02/02/2006, 08:32
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Yo no creo que venga vacio el Request("eje"), el problema creo yo es el el campo registros("Ejecutivo").

Mejor verifica tu Query:

sql = "SELECT * FROM InforBO WHERE Ejecutivo like '"&ejecutiva&"'"

verifica que ese valor efectivamente exista en la tabla.
Otra cosa, usas LIKE pero no usas comodines, por lo que funciona como un "=", quizá es un error de conceptos y en realidad deseas hacer un "like '%"&ejecutiva&"%'".

Lo cierto es que todos estamos adivinando, solo tu puedes hacer las pruebas.

Saludos
  #8 (permalink)  
Antiguo 02/02/2006, 08:40
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 18 años, 5 meses
Puntos: 8
ok muchas gracias a todos ya lo solucione
  #9 (permalink)  
Antiguo 02/02/2006, 11:04
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 18 años, 9 meses
Puntos: 0
Simplemente debes indicarle antes de recorer el do while y se encuentra en el primero o en el ultmio registro. Algo asi:

If Not RS.Eof Then
COlocar aqui el do while
End If
  #10 (permalink)  
Antiguo 30/10/2007, 08:35
 
Fecha de Ingreso: octubre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: error en asp problema con algo de BOF o EOF

hola a todos yo tengo el mismo problema alguien sabes como solucionarlo..

<%@ Language="VBScript" %>
<% Option Explicit %>
<%
Dim user,pass

user = LCASE(Request.Form("username"))
pass = Request.Form("password")
%>
<!--#include file="dbconn.asp"-->
<%
IF user = "" Then
error("emptyuname")
ELSEIF pass = "" Then
error("emptypass")
ELSE
IF user = "admin" Then
Dim sql,rsUser,lpass
sql = "SELECT pass FROM Users WHERE username = 'admin'"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsuser.Open sql, dbconn, 3, 3
lpass = rsUser("pass")
rsUser.close
set rsUser = nothing
IF pass = lpass Then
Session("username") = "admin"
Response.Redirect("index.asp")
ELSE
error("wrongp")
END IF
ELSE
error("wrongu")
END IF

END IF
%>

<%FUNCTION error(calltype)%>
<!--#include file="head.asp"-->
<br><br><br>
<table Align="center" vAlign="center" width="500">
<tr>
<td Align="center">
<h3>LOGIN ERROR</h3>
</td>
</tr>
<tr>
<td Align="center">
<%IF calltype = "emptyuname" Then%>
<font size="2">You can`t enter any username in username field.</font>
<%ELSEIF calltype = "emptypass" Then%>
<font size="2">You can`t enter any password in password field.</font>
<%ELSEIF calltype = "wrongp" Then%>
<font size="2">Your password is wrong.</font>
<%ELSEIF calltype = "wrongu" Then%>
<font size="2">This section is only for Admin.</font>
<%END IF%>
</td>
</tr>
</table>

<br><center><a href="javascript:history.back()"> Please click here to go back and make changes</a> </center>


<!--#include file="footer.asp"-->
<%END FUNCTION%>


este es el error que me da ADODB.Field (0x800A0BCD)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.
/usermanager/admin/loginprocess.asp, línea 21
  #11 (permalink)  
Antiguo 30/10/2007, 08:41
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: error en asp problema con algo de BOF o EOF

sql = "SELECT pass FROM Users WHERE username = 'admin'"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsuser.Open sql, dbconn, 3, 3
lpass = rsUser("pass")

Tu query no te regresa nada y quieres acceder a un campo, por eso es el error.
  #12 (permalink)  
Antiguo 30/10/2007, 09:02
 
Fecha de Ingreso: octubre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: error en asp problema con algo de BOF o EOF

y como puedo arreglar ese error me puedes ayudar .....por favor...
que tengo que agregar mas.... me puedes decir..
  #13 (permalink)  
Antiguo 30/10/2007, 10:18
 
Fecha de Ingreso: octubre-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: error en asp problema con algo de BOF o EOF

yo trate de hacer algo pero me sale el mismo error asi que espero que alguien de uds que tenga buena voluntad me diga como arreglar esto lo necesito....
  #14 (permalink)  
Antiguo 30/10/2007, 11:04
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: error en asp problema con algo de BOF o EOF

bueno, arreglarlo como quien dice arreglarlo, pues solo tu puedes, ya que si esa consulta te sale vacía es por que en la tabla Users no hay un registro que en el campo username sea igual a admin

Si quieres que no te truene (aunque el programa no funcionará como esta diseñado) solo agrega un IF:
Código:
sql = "SELECT pass FROM Users WHERE username = 'admin'"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsuser.Open sql, dbconn, 3, 3
if not rsuser.EOF Then 
   lpass = rsUser("pass")
End If
rsUser.close
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:40.