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

Error recordset

Estas en el tema de Error recordset en el foro de ASP Clásico en Foros del Web. Tengo esta linea de codigo: RS.Close RS lo tengo declarado de la siguiente manera: Set RS=Server.CreateObject("ADODB.Recordset") y me da el siguiente error: El objeto no ...
  #1 (permalink)  
Antiguo 05/05/2005, 17:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 7 meses
Puntos: 0
Error recordset

Tengo esta linea de codigo:

RS.Close

RS lo tengo declarado de la siguiente manera:

Set RS=Server.CreateObject("ADODB.Recordset")

y me da el siguiente error:

El objeto no acepta esta propiedad o método: 'Close'

Me podrian decir el motivo?
Gracias

Aprobecho para deciros otro error(espero no abusar mucho), el siguiente codigo estaria bien:

<%if RS.EOF then%>
<script language="JavaScript">
alert("No hay datos de administrador.");
</script>
<%End if%>

Me da el siguiente error:

El objeto no acepta esta propiedad o método: 'EOF'

Gracias otra vez
  #2 (permalink)  
Antiguo 05/05/2005, 22:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Hola, no se si estarás poniendo tu código completo, pero si tu código original es tal cual como lo pusiste el error que tienes es que no le indicas al objeto RecordSet que conexión usarás, y tampoco le estás indicando cual es la tabla que debe abrir para extraer los registros. Prueba con esto:

set conn = Server.CreateObject("ADODB.Connection") 'te conectas a la base de datos
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tu_base.mdb")

set RS = Server.CreateObject("ADODB.RecordSet") 'creas el RS
RS.ActiveConnection = conn
RS.Open "tu_tabla"

Otra forma sería reemplazando la linea RS.Open "tu_tabla" por RS.Open("una_sentencia_SQL"), que podría ser "SELECT * FROM tu_tabla" o la que se te acomode a tus necesidades.

Luego de todo esto si tienes que poner las siguientes lineas:

RS.Close 'cierra el RS
set RS = nothing 'Limpia el RS para liberar recursos
conn.Close 'cierra la conexion
set conn = nothing 'Limpia la conexion para liberar recursos


Eso es lo que tendrías que modificar en tu código, no debería darte error.
Lo otro que pusiste en tu mensaje, lo dejas como está, tampoco debería darte error.
Bueno espero que te haya ayudado y te mando saludos.
  #3 (permalink)  
Antiguo 06/05/2005, 03:03
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
no tendrás dos rs.close en la misma página? (es sólo por probar opciones)
  #4 (permalink)  
Antiguo 06/05/2005, 14:23
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 7 meses
Puntos: 0
El codigo que tengo es el siguiente:

Set Conn= Server.CreateObject("ADODB.Connection")
Conn.Open "colegio"
Set RS=Server.CreateObject("ADODB.Recordset")
RS=Conn.Execute("SELECT nombre, clave FROM accesoadm")

Para realizar la conexion a la base de datos y para realizar la consulta, despues de esto tengo una serie de comparaciones que no me dan error y por ultimo el cierre de la conexion que lo tengo de la siguiente manera:

RS.Close
RS = Nothing
Conn.Close
Conn = Nothing

Asi que no se lo que me puede fallar.
  #5 (permalink)  
Antiguo 06/05/2005, 14:33
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
No estoy muy seguro que esto funcione así:

Set Conn= Server.CreateObject("ADODB.Connection")
Conn.Open "colegio"

Set RS=Server.CreateObject("ADODB.Recordset")
RS=Conn.Execute("SELECT nombre, clave FROM accesoadm")


Trata así:

Set RS=Server.CreateObject("ADODB.Recordset")
RS.Open "SELECT nombre, clave FROM accesoadm", Conn, 3, 3


Salú!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 06/05/2005, 16:08
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Humm...

Mira, no se si siempre pase, o es solo a veces, pero no puedes usar Close sobre un Recordset que esta vacio, o bien, que aun no se ha hecho nada, tampoco el EOF, y por los errores que te aparecen quiere decir que el RS que tienes jamás hizo una consulta valida y que ademas regresara datos.

Revisa que tengas bien la consulta que realizas con el RS.
  #7 (permalink)  
Antiguo 06/05/2005, 17:16
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 7 meses
Puntos: 0
Para comprobar que funciona he hecho lo siguiente:

Response.Write(RS("nombre"))
Response.Write(RS("clave"))

y me escribe el nombre y la clave que tengo almacenada en la base de datos.

Los consejos que me habeis dado ahora no los he probado, pero los probare, por cierto que son los dos ultimos parametros que se ponen en la consulta?
  #8 (permalink)  
Antiguo 06/05/2005, 17:20
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hummm..

A lo que tienes arriba...

Set Conn= Server.CreateObject("ADODB.Connection")
Conn.Open "colegio"
'Set RS=Server.CreateObject("ADODB.Recordset") 'Esta linea no creo que la necesites, aqui puede ser el error.
set RS=Conn.Execute("SELECT nombre, clave FROM accesoadm")

Para realizar la conexion a la base de datos y para realizar la consulta, despues de esto tengo una serie de comparaciones que no me dan error y por ultimo el cierre de la conexion que lo tengo de la siguiente manera:

RS.Close
RS = Nothing
Conn.Close
Conn = Nothing

Asi que no se lo que me puede fallar.
  #9 (permalink)  
Antiguo 06/05/2005, 17:23
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cierto

Todos lo pasamos, pero el compilador lo encontró

RS = Nothing

Para destruir un objeto, necesitas anteponer la instrucción Set

Set RS = Nothing
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 06/05/2005, 17:26
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Cierto..

Faltaba arriba y tambien abajo hace falta, entonces quedaria asi finalmente...

Set Conn= Server.CreateObject("ADODB.Connection")
Conn.Open "colegio"
'Set RS=Server.CreateObject("ADODB.Recordset") 'Esta linea no creo que la necesites, aqui puede ser el error.
set RS=Conn.Execute("SELECT nombre, clave FROM accesoadm")

Para realizar la conexion a la base de datos y para realizar la consulta, despues de esto tengo una serie de comparaciones que no me dan error y por ultimo el cierre de la conexion que lo tengo de la siguiente manera:

RS.Close
set RS = Nothing
Conn.Close
set Conn = Nothing

Buen trabajo !!
  #11 (permalink)  
Antiguo 06/05/2005, 23:48
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 7 meses
Puntos: 0
Muchas gracias a todos, habeis sido de mucha ayuda.
Hasta la proxima (espero que pase mucho tiempo hasta eso)
Gracias otra vez
  #12 (permalink)  
Antiguo 07/05/2005, 21:26
 
Fecha de Ingreso: mayo-2005
Ubicación: Girona
Mensajes: 4
Antigüedad: 19 años, 1 mes
Puntos: 0
Cita:
Iniciado por movil
Para comprobar que funciona he hecho lo siguiente:

Response.Write(RS("nombre"))
Response.Write(RS("clave"))

y me escribe el nombre y la clave que tengo almacenada en la base de datos.

Los consejos que me habeis dado ahora no los he probado, pero los probare, por cierto que son los dos ultimos parametros que se ponen en la consulta?
LOs 2 ultimos parametros creo k son el LockType y el CursorType


Salu2
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 12:19.