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

Error de consulta El valor de BOF o EOF es True

Estas en el tema de Error de consulta El valor de BOF o EOF es True en el foro de ASP Clásico en Foros del Web. Datos BD: MS Acces 2003 Tabla: Clientes Campo: No (Autonumerico) La duda es la siguiente: Al tratar de hacer una consulta por medio del campo ...
  #1 (permalink)  
Antiguo 12/10/2009, 10:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Error de consulta El valor de BOF o EOF es True

Datos
BD: MS Acces 2003
Tabla: Clientes
Campo: No (Autonumerico)
La duda es la siguiente:

Al tratar de hacer una consulta por medio del campo [No], manda el siguiente error:
valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.

Codigo:

ID_Cte=Int( Trim(Request.QueryString("Num")))

dim ObjRs, SQL
SQL ="SELECT * FROM Clientes WHERE No =" & Id_cte

Set ObjRs = Server.CreateObject("ADODB.RecordSet")
ObjRs.Open SQL , ObjCon

Response.Write(ObjRs("Razon_Soc"))

Al visualizar la variable Id_Cte trae un valor numerico
Si la consulta la hago con un campo de texto si me da el registro.

Alguna sugerencias.
Gracias.
  #2 (permalink)  
Antiguo 12/10/2009, 11:05
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 18 años, 9 meses
Puntos: 41
Respuesta: Error de consulta El valor de BOF o EOF es True

MMmm... todo apunta a que el registro no existe, comprueba bien que lo que le mandas por Querystring sea lo mismo que tienes en BD.

¿No te falta Ejecutar la SQL?

Saludos, Jose
  #3 (permalink)  
Antiguo 12/10/2009, 11:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error de consulta El valor de BOF o EOF es True

si veo que trae el SQL me da lo siguiente
Response.Write (SQL)

SELECT * FROM Clientes WHERE No =151

por lo tanto creo no deberia tener problema.
El registro 151 si existe.
a que te refieres con ejecutar el SQL?
Gracias Jose por tu tiempo.
  #4 (permalink)  
Antiguo 12/10/2009, 11:22
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
Respuesta: Error de consulta El valor de BOF o EOF es True

el campo en la base de datos es autonumerico? y el valor con el que lo comparas es numerico?
  #5 (permalink)  
Antiguo 12/10/2009, 11:28
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error de consulta El valor de BOF o EOF es True

Si el campo es autonumerico y la variables es numerica.
  #6 (permalink)  
Antiguo 12/10/2009, 11:28
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 18 años, 9 meses
Puntos: 41
Respuesta: Error de consulta El valor de BOF o EOF es True

Prueba a poner esto que te mando
SQL ="SELECT * FROM Clientes WHERE No ='" & Id_cte & "'"

Seguramente es que el campo No es de texto...

Saludos, Jose
  #7 (permalink)  
Antiguo 12/10/2009, 11:32
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error de consulta El valor de BOF o EOF es True

Cita:
Iniciado por Wasper Ver Mensaje
Prueba a poner esto que te mando
SQL ="SELECT * FROM Clientes WHERE No ='" & Id_cte & "'"

Seguramente es que el campo No es de texto...

Saludos, Jose

Ya lo intente como me comentas jose, pero sigo sin obtener el registro.
SQL ="SELECT * FROM Clientes WHERE No ='" & Id_cte & "'"
Se supone que si le pongo comillas simples es por q estoy haciendo referencia a una cadeja de texto no?
  #8 (permalink)  
Antiguo 12/10/2009, 12:14
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
Respuesta: Error de consulta El valor de BOF o EOF es True

si, asi es, intenta poner cdbl(Id_cte) aunque lo mas seguro es que te marque un error si el valor ya es numerico o poner
if not isnumeric(id_cte) then id_cte=cdbl(id_cte)

digo, buscandole a ver...
  #9 (permalink)  
Antiguo 12/10/2009, 12:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error de consulta El valor de BOF o EOF es True

Cita:
Iniciado por sjam7 Ver Mensaje
si, asi es, intenta poner cdbl(Id_cte) aunque lo mas seguro es que te marque un error si el valor ya es numerico o poner
if not isnumeric(id_cte) then id_cte=cdbl(id_cte)

digo, buscandole a ver...
Es muy raro, ya lo he intentado viendo si el valor es numerico y sale true, con int, etc, si hago la consulta con un campo de texo del mismo registro, si me arroja el resultado, pero la idea es ocupar el Id del cliente para evitar cualquier problema.
seguire intentado cualquier sugerencia se agradece.
gracias por tu tiempo.
  #10 (permalink)  
Antiguo 12/10/2009, 13:24
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Error de consulta El valor de BOF o EOF es True

Hola

Fíjate lo que tienes aquí ID_Cte=Int( Trim(Request.QueryString("Num"))). Si aún no funciona prueba con Fix

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #11 (permalink)  
Antiguo 12/10/2009, 13:57
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Error de consulta El valor de BOF o EOF es True

mmmmmmmmmm, como que yo ya no me la creo ....

A ver, por favor pon el código que esta marcando error e indica cuál de de las lineas del código en cuestión marca error

Digo, en una de esas el error esta en otro lado
  #12 (permalink)  
Antiguo 12/10/2009, 15:18
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error de consulta El valor de BOF o EOF es True

Cita:
Iniciado por Myakire Ver Mensaje
mmmmmmmmmm, como que yo ya no me la creo ....

A ver, por favor pon el código que esta marcando error e indica cuál de de las lineas del código en cuestión marca error

Digo, en una de esas el error esta en otro lado
el codigo es este:
Id_Cte=cdbl(Request.QueryString("Id_Cte"))


dim ObjRs, SQL

SQL ="SELECT * FROM Clientes WHERE No =" &Id_Cte


Set ObjRs = Server.CreateObject("ADODB.RecordSet")
ObjRs.Open SQL , ObjCon

Response.Write(ObjRs("Razon_soc"))


la parte donde manda el error es:

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.
/atn/Edita_cte.asp

Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Página:
GET /atn/Edita_cte.asp

Última edición por monroy_l; 12/10/2009 a las 15:33
  #13 (permalink)  
Antiguo 12/10/2009, 16:09
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Error de consulta El valor de BOF o EOF es True

No dice la linea?

Si la variable SQL contiene algo que en el administrador de consultas sí corre y regresa registros, entonces tu objeto de conexión esta apuntando a otra BD o por alguna extraña razón tienes un MDAC menor al 2.6, deberías de tener el 2.8

Te diría también que no usaras SELECT * por que te traes todos los campos aunque no los uses haciendo más lenta la respuesta, y en este caso en especial haces difícil de verificar que el nombre del campo que referencias en realidad si exista en la consulta, no es el caso en este problema por que si no el error sería de que no se encuentra el campo Razon_soc en la colección de ObjRs, o algo así.

Me interesa especialmente que me confirmes que lo que dices que contiene la variable SQL ("SELECT * FROM Clientes WHERE No =151") si regrese valores en el motor de base de datos cuando lo corres ahí.

Por cierto, ¿qué BD estas usando?
  #14 (permalink)  
Antiguo 12/10/2009, 16:22
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
Respuesta: Error de consulta El valor de BOF o EOF es True

dijo que access

oye y si le pones el valor directo tambien marca error? es decir, sin variable
  #15 (permalink)  
Antiguo 12/10/2009, 16:30
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error de consulta El valor de BOF o EOF es True

Si si le pongo un valor fijo a la cosulta en el campo [No] me marca lo mismo, caso contrario si uso alguno de los otros campos de la tabla no tengo problema alguno.

SQL ="SELECT * FROM Clientes WHERE No = 151"


Se me ocurre mi campo se llama [No], no hay alguna palabra reservada ??
El problema radica solo cuando utilizo el campo autonumerico para hacer el filtrado

--------------------------------------------------------------------------------------------------------
Perdon que lo cierre aca es que aun no cumplo mi cuota de 30 dias :D pero ya quedo como dices Myakire si es una palabra reservada y quedo con unos simples []
Agradesco a todos el tiempo dedicado y hoy puedo ir a dormir tranquilo y con mas conocimientos que ayer gracias a ustedes.
Saludos.
Omar

Última edición por monroy_l; 12/10/2009 a las 17:12
  #16 (permalink)  
Antiguo 12/10/2009, 17:06
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Error de consulta El valor de BOF o EOF es True

No leí que fuera access lo que ocupabas, sorry

Parece que efectivamente, es una palabra reservada:

http://office.microsoft.com/es-es/ac...306433082.aspx

Debería ser entonces:

SQL ="SELECT * FROM Clientes WHERE [No] = " & Variable
  #17 (permalink)  
Antiguo 13/10/2009, 04:09
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 18 años, 9 meses
Puntos: 41
Respuesta: Error de consulta El valor de BOF o EOF es True

Recuerdo que una vez me ocurrio algo parecido, me daba el mismo error en el portatil y llegue a la conclusion de que el IIS se me fue a tomar por culo, por lo que te sugiero una reinstalacion del IIS y veras como se soluciona las cosas, a mi me funciono. Se que es una solucion poco ortodoxa pero creo que te evitaria ver y ver y ver el codigo y no sacar nada en concreto, intenta poner localhost en el navegador a ver que te sale.

Si no quieres esa solucion, puedes intentar publicarlo en un hosting con ASP y ver si te sigue dando el error.

Espero que te sirva.

Saludos, Jose

Última edición por Wasper; 13/10/2009 a las 07:04 Razón: Perdon, quise decir poco ortodoxa
  #18 (permalink)  
Antiguo 13/10/2009, 07:01
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Error de consulta El valor de BOF o EOF es True

Cita:
Iniciado por Wasper Ver Mensaje
Se que es una solucion ortodoxa pero creo que te evitaria ver y ver y ver el codigo y no sacar nada en concreto, intenta poner localhost en el navegador a ver que te sale.
Será poco ortodoxa, digo, no es muy evidente pensar en reinstalar el servidor web para un error del proveedor de datos, pero bueno, si a ti te funcionó pues es una posible solución más

Saludos
  #19 (permalink)  
Antiguo 13/10/2009, 07:06
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 18 años, 9 meses
Puntos: 41
Respuesta: Error de consulta El valor de BOF o EOF es True

Ya lo corregi... jejeje, por cierto supongo que tambien habras parado IIS y reiniciado... si no es asi, puedes hacerlo antes de reinstalar IIS...

Saludos, Jose

Última edición por Wasper; 17/10/2009 a las 04:28
  #20 (permalink)  
Antiguo 13/10/2009, 07:36
 
Fecha de Ingreso: octubre-2009
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Error de consulta El valor de BOF o EOF es True

Supongo el problema no fue en la programación mas bien a la hora de idear los campos de la Bd, como decia Myakire "El error estaba en otro lado", pero es bueno saber que uno puede recurrir a estos foros y habra personas dispuestas a ayudarte y eso es bueno...
La solucion fueron unos simples [] que hasta pena me da no haber pensado en eso aunado con un campo con nombre de palabra reservada.

Saludos a todos y muchas gracias.
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 23:30.