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

dividir la consulta sql

Estas en el tema de dividir la consulta sql en el foro de ASP Clásico en Foros del Web. Tengo este codigo, creo que el problema se produce por una consulta demasiado larga, he intentado dividirla añadiendo sql = sql & "SELECT.... sin embargo ...
  #1 (permalink)  
Antiguo 11/11/2002, 14:09
 
Fecha de Ingreso: noviembre-2002
Mensajes: 133
Antigüedad: 22 años, 5 meses
Puntos: 0
dividir la consulta sql

Tengo este codigo, creo que el problema se produce por una consulta demasiado larga, he intentado dividirla añadiendo sql = sql & "SELECT.... sin embargo no funciona ¿como lo puedo resolver?. Gracias


<%
Option Explicit
Dim sql, rsIdentifs, username, opcion

username = Request.Cookies("username")
opcion = Request.QueryString("opcion")

%>
<%
Dim ConnectString, conn

ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("siteusers.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
<%
sql = "SELECT 'tabla1' as Listado , codigo FROM tabla1 WHERE tabla1.username = '" & username & "' AND TABLA1.OPCION = 1 UNION SELECT 'tabla2' as Listado , codigo FROM tabla2 WHERE tabla2.username = '" & username & "' AND TABLA2.OPCION = 1 UNION SELECT 'tabla3' as Listado , codigo FROM tabla3 WHERE tabla3.username = '" & username & "' AND TABLA3.OPCION = 1 UNION SELECT 'tabla4' as Listado , codigo FROM tabla4 WHERE tabla4.username = '" & username & "' AND TABLA1.OPCION = 1 UNION SELECT 'tabla5' as Listado , codigo FROM tabla5 WHERE tabla5.username = '" & username & "' AND TABLA2.OPCION = 1"
Set rsIdentifs = Server.CreateObject("ADODB.Recordset")
rsIdentifs.Open sql, conn, 3, 3
%>

<%if not rsIdentifs.EOF then%>

<!-- Identif users -->
<table cellpadding=4 cellspacing=1 border=0 bgcolor="#000000">
<tr>
<th width="272"><font face="arial,helvetica" size="1" color="#FFFFFF">Username</font></th>
</tr>
<%rsIdentifs.Movefirst
do until rsIdentifs.EOF%>
<tr bgcolor="#F3F3F3">
<td><font face="arial,helvetica" size="2"><%=rsIdentifs("username")%></font></td>
</tr>
<%rsIdentifs.Movenext
loop%>
</table>


<html>
<head>
<title>User List</title>
</head>
<body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000">
</body>
</html>

<%
conn.close
set conn = nothing
%>
  #2 (permalink)  
Antiguo 11/11/2002, 14:24
Avatar de g_susdaniel  
Fecha de Ingreso: mayo-2001
Ubicación: Frente al Monitor :þ
Mensajes: 995
Antigüedad: 24 años
Puntos: 0
sinceramente dá flojera leer la sentencia , porke no nos comentas que quieres que haga, que hace, que error te dá, en que linea y nos muestras la linea del error ;)
__________________
No, no no... no hay firma...
  #3 (permalink)  
Antiguo 11/11/2002, 15:30
 
Fecha de Ingreso: noviembre-2002
Mensajes: 133
Antigüedad: 22 años, 5 meses
Puntos: 0
Me parece bien , para explicar lo que quiero obtener:

Cada tabla contiene nombre de usuarios, opcion (toma valores de 1 , 2 , 3) y codigo (distinto para cada usuario y tabla)

Con este codigo pretendo que me liste el nombre de las tablas y un codigo (de cada usuario en cada una de las tablas), pero solo de aquellas tablas en las que exista ese usuario y tenga una misma opcion (opcion = 1 en este caso)
  #4 (permalink)  
Antiguo 11/11/2002, 15:33
 
Fecha de Ingreso: noviembre-2002
Mensajes: 133
Antigüedad: 22 años, 5 meses
Puntos: 0
ahhhhhhh y el error me pone que le falta un end al final

Última edición por luisgls; 11/11/2002 a las 17:23
  #5 (permalink)  
Antiguo 11/11/2002, 15:56
 
Fecha de Ingreso: noviembre-2002
Mensajes: 19
Antigüedad: 22 años, 5 meses
Puntos: 0
Yo creo la sentencia no es muy laga, yo he usado mas largas tambien y no tengo problemas.... pero pues no se si en tu caso afecte la longitud de la instrucción...

Aunque como no se cuál es el error, tal vez podría ser que la sentencia SQL no sea la que realmente tu piensas....

Porque no le pones un Response.Write SQL y y Comentas el open y el resto, solo para comprobar que realmente la sentencia este correcta, ya sabes, con sus comillitas, sin campos vacíos, etc.

Yo las uso asi:

SQL = "Select * from XXX where " & _
"BLA BLA A " & _
"MAS BLA MAS BLA " & _
"FIN DEL BLA"

Y me han funcionado pero te recuerdo que no creo que sea problema de longitud de la sentencia.
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 14:53.