Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/05/2007, 02:43
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

Hola Shilfild de nuevo,

Si me permites voy a reconstruir todo tu codigo para poder entender que te está pasando. Voy a ir comentandolo y, asi, si me equivoco en algo puedes hacer luego referencia a ello.

Código:
<%@ language="JScript" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<!-- Hay que cambiar esto por el diseño de la propia página -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../Intranet/web/intranet.css" rel="stylesheet" type="text/css">
<link href="../Intranet/web/scroll.css" rel="stylesheet" type="text/css">
</head>

<body>
<!-- #INCLUDE file="ADOJAVAS.inc" -->
<%
// *************************
// Realizamos las conexiones a la BD
// *************************

var cone=Server.CreateObject("ADODB.Connection");
cone.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="+Server.MapPath("portaljoven.mdb"));

// **********************************
//  Creamos instancias de los objetos Recordset
//  que vamos a utilizar en la página.
// **********************************

var rstIntranet=server.CreateObject("ADODB.RecordSet");
var rstBusqueda = Server.CreateObject("ADODB.RecordSet");

// **********************************
//  Cadena con la sentencia SQL: Queremos los
//  4 ultimos registros de la tabla destacados
// **********************************

var  sentencia="Select top 4 id_destacado from destacados order by id_destacado desc";

// **********************************
//  Cargamos el primer recordset para la
//  sentencia SQL
// **********************************

rstIntranet.Open(sentencia,cone,adOpenStatic,adCmdTable);    

%>

    <table border=0>
    <%
    // ******************************
    // * Bucle de resultados (TOP 4 DESC)    *
    // ******************************
    while (!rstIntranet.eof){
    
    %>
    <tr>
    <% 
         // ***********************************
         // * Realizamos otra busqueda en base a los      *
         // * resultados del primer recordset. Queremos   *
         // * los nombres de tipos de los registros          *
         // * seleccionados en el primer recordset          *
         // * NOTA: siempre y cuando el campo no esté  *
         // * vacio                                                    *
         // ***********************************
          if (rstIntranet.Fields(0).value!="") {
                sentencia = "SELECT t.tipo_nombre
FROM tipos t INNER JOIN destacados d ON t.id_tipo = d.destacados_tipo WHERE d.id_destacado="+rstIntranet.Fields(0).value 
                 // ************************
                 // Cargamos el segundo recordset
                 // ************************
                 rstBusqueda.Open(sentencia,cone,adOpenStatic,adCmdTable); 
              
                 // ************************
                 // Comprobamos el resultado de 
                 // la segunda busqueda
                 // ************************
                 if(!rstBusqueda.EOF) { 
                        // ***************************
                        // Si el valor del campo es 'comics'
                        // visualizamos una cosa. En caso
                        // contrario, vemos lo que nos
                        // trae.
                        // ***************************
                        switch(rstBusqueda.Fields(0).value) {
                        case "comics":
                            Response.Write("Destacado ID: " + rstIntranet.Fields(0).value + " es comics");
                            break;
                         default:
                            Response.Write("Destacado ID: " + rstIntranet.Fields(0).value + " es " + rstBusqueda.Fields(0).value);
                         }
                  } // f(!rstBusqueda.EOF)
                  // ******************
                  // cerramos la busqueda
                  // pero no desconectamos
                  // para poder seguir
                  // buscando
                  // ******************
                  rstBusqueda.close();
          } // if (rstIntranet.Fields(0).value!="")
                    
        %>
        </tr>            
        <%
             // ***************************
             // Nos movemos al siguiente registro
             // *************************** 
             rstIntranet.Movenext();
    } // while (!rstIntranet.eof){
    %>
</table>
<%
// ****************
// Cerramos objetos
// ****************

rstIntranet.close();
rstBusqueda = null;
rstIntranet = null;
cone.close();
cone = null;
%>
</body>
</html>

A ver si esto te ayuda en algo



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