Ver Mensaje Individual
  #14 (permalink)  
Antiguo 03/05/2007, 05:24
tammander
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Duda con el objeto Recordset

Hay tres pasos siempre que se usa un objeto:

- La construccion de la instancia:
var rstcomics= Server.CreateObject("ADODB.RecordSet");

- La asignacion de valores a la instancia y su manipulacion:
rstcomics.Open(comic,cone,adOpenStatic,adCmdTable) ;
rstcomics.close();
- La destruccion de la instancia:
rstcomics = null;

Como puedes ver el metodo close() no destruye la instancia. Simplemente cierra la conexion con la instancia del objeto Connection (tampoco cierra la BD, solo cierra esa solicitud a la BD) Para cerrar la conexion con la BD tenemos que usar el metodo close() de la instancia del objeto Connection (cone.close()) ¿Qué significa esto? que no hay que volver a construir la instancia del recordset, simplemente volver a abrirla (fijate como lo hago con rstBusqueda) Si vuelves otra vez (RECUERDA EL LOOP DEL WHILE) e intentas redeclarar rstComics te dirá que el objeto ya existe pero si encima no lo cierras te dirá que está abierto.

Por eso:
- no declares nada dentro de un bucle. Hazlo antes.
- Cierra los objetos ADO que esten dentro de un bucle pues si no seguirán abiertos y dará error.
- TEN CUIDADO CON LOS TIPOS DE DATOS

Esto:
var rstcomics= Server.CreateObject("ADODB.RecordSet");

Con el resto. Es, ademas, bueno tener juntitos todas las variables que vas a usar ya que de un vistazo puedes saber si existen o no.

Código:
switch(rstBusqueda.Fields(0).value) {
                        case "comic":

                             var comic="Select comic_titulo,comic_imagen from comics where id_comic="+ rstIntranet.Fields(0).value;
                             rstcomics.Open(comic,cone,adOpenStatic,adCmdTable);
                             Response.Write("Destacado ID: " + rstIntranet.Fields(0).value + " es comics");
                             Response.Write("<a href='desarrollo_comics.asp?Id="+rstcomics.Fields(0).value+"' class='desarrollo' target='_parent'>"+rstcomics.Fields(0).value+"</a>")
                             rstcomics.close();
                             break;
Y destruyelo al final:

rstcomics = null;








Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -