Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/05/2007, 08:34
Avatar de Shilfild
Shilfild
 
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Duda con el objeto Recordset

No me extraña que te lies, con todas las cosas distintas que hay... pero a mí esto me odia, cada día lo tengo mas claro xD

Poniendo:

Código:
	switch(Case intra3.Fields("tipo_nombre").Value){ 
                  case "comics":
                  	Response.Write("hola");
                              break;
                  default:
                 	 Response.Write("adios")                
            }
También tengo error

Tipo de error:
Error de compilación de Microsoft JScript (0x800A03EE)
Se esperaba ')'
/portal_joven/listado_destacados.asp, línea 37, columna 12

Linea 37: switch(Case intra3.Fields("tipo_nombre").Value){


Después he probado con esto:

Código:
			  	switch(Case (intra3.Fields("tipo_nombre").Value)){
                  case "comics":
                  	Response.Write("hola");
                              break;
                  default:
                 	 Response.Write("adios")                
            }
Y sigue habiendo error

Error en tiempo de ejecución de Microsoft JScript (0x800A138F)
'rstIntranet.Fields.id_destacado.value' es nulo o no es un objeto
/portal_joven/listado_destacados.asp, línea 34


Linea 34: vartabla="Select tipo_nombre from tipos where id_tipo=(select destacados_tipo from destacados where id_destacado='"+ rstIntranet.Fields["id_destacado"].value +"')";

Con un Response Write tal que así:

Response.Write(rstIntranet.Fields["id_destacado"].value)

El error me dice que: 'rstIntranet.Fields.id_destacado.value' es nulo o no es un objeto

Si pruebo con :
Código:
 
<!-- #INCLUDE file="ADOJAVAS.inc" -->
<%
    cone=Server.CreateObject("ADODB.Connection");
    cone.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="+Server.MapPath("portaljoven.mdb"));
    rstIntranet=new ActiveXObject("ADODB.RecordSet");
    intra2=new ActiveXObject("ADODB.RecordSet");
    intra3=new ActiveXObject("ADODB.RecordSet");
    sentencia="Select top 4 * from destacados order by id_destacado desc";
    rstIntranet.Open(sentencia,cone,adOpenStatic,adCmdTable);    
    %>

    <table border=0>
    <%

    while (!rstIntranet.eof){
        %><tr>
            <% 
           
            vartabla="Select tipo_nombre from tipos where id_tipo=(select destacados_tipo from destacados where id_destacado='"+ rstIntranet.Fields("id_destacado").value +"')";
			Response.Write(rstIntranet.Fields("id_destacado"))
            intra3.Open(vartabla,cone,adOpenStatic,adCmdTable); 
              
			  	switch(Case (intra3.Fields("tipo_nombre").Value)){
                  case "comics":
                  	Response.Write("hola");
                              break;
                  default:
                 	 Response.Write("adios")                
            }
            
                    
        %>
        </tr>            
        <%
             rstIntranet.Movenext();
        
        
    }
    %>
</table>
<%rstIntranet.close();
cone.close();%>
</body>
</html>

Es decir, cambiando: vartabla="Select tipo_nombre from tipos where id_tipo=(select destacados_tipo from destacados where id_destacado='"+ rstIntranet.Fields("id_destacado").value +"')";
en vez de rstIntranet.Fields["id_destacado"].value el error varía:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos en la expresión de criterios.
/portal_joven/listado_destacados.asp, línea 36




Qué hago mal? Puede ser que la select esté mal hecha?
Por cierto lo de hacer la select así en vez de ir restandole 1 al máximo hasta llegar a 5 es una idea muy buena xD

Última edición por Shilfild; 02/05/2007 a las 08:44