Problemas con arrays en el global .asa

Hola tengo una preguntilla algo especial, te cuento:
Necesito hacer una búsqueda sobre una búsqueda realizada anteriormente:
select * from tabla where id=(a los ids de la busqueda anterior)
La busqueda anterio podria ser:
select * from tabla where campo1=1
No se si se podrá hacer directamente con SQL (creo que no porque no puedes hacer una subselect que te devuelva más de un campo).
El caso si no se puede hacer con SQL, como lo hago con ASP, he pensado en hacer un array con los ID que me devuelva la primera consulta y meterlos en global.asa en la session de cada usuario. Necesito saber como hacer ese array dinámico (ya que la consulta no me va adevolver siempre el mismo numero de ID) y a la vez como recupero esos valores del objeto session. He hecho un prueba y meterlos los meto sin problema, pero no consigo recuperarlos, me dice que el objeto no es una colección.
Lo hago de esta forma:
Response.Write (session("tabla(1)"))
For Each elemento in session("tabla")
Response.Write elemento
Next
El primer response. Write funciona perfectamente, pero el para no funciona y es cuando me dice lo de la colecion.
¿Cómo lo hago?.
Muchas gracias.
Juanmi.

1 Respuesta

Respuesta
1
Respecto a lo de las subconsultas, sí que se puede. Por ejemplo:
select * from tabla where id in (select id from tabla where campo1=1)
De todos modos, si éstas son realmente las consultas que te interesan, no tiene mucho sentido. Esto se suele utilizar entre diferentes tablas, no con la misma.
Respecto a lo del global. Asa, allí no puedes meter gran cosa: sólo el código que se ejecutará en los eventos Session_onstart (cuando entra un usuario), Session_onend (cuando se desconecta un usuario), Application_onstart (cuando se activa una aplicación) y Applicacion_onend (cuando se desactiva una aplicación).
Y en cuanto a manipular arrays en variables de sesión, sí que se puede. La instrucción "For each" sólo sirve con colecciones. Para el bucle que utilizas, debería ser:
Dim i
For i=lbound(session("tabla")) to ubound(session("tabla"))
Response.Write session("tabla")(i)
Next

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas