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

Condicionar SELECT con ASP

Estas en el tema de Condicionar SELECT con ASP en el foro de ASP Clásico en Foros del Web. Hola amigos. Éste es mi primer comentario en éste foro el cuál me parece muuuy interesante, tanto en cuestiones como en soluciones. Tal vez mi ...
  #1 (permalink)  
Antiguo 09/08/2008, 02:11
 
Fecha de Ingreso: agosto-2008
Mensajes: 82
Antigüedad: 15 años, 10 meses
Puntos: 4
Información Condicionar SELECT con ASP

Hola amigos.
Éste es mi primer comentario en éste foro el cuál me parece muuuy interesante, tanto en cuestiones como en soluciones.

Tal vez mi duda es de lo mas simple . . .

Tengo una consulta, la cual debo condicionar y volver a ejecutar varias veces ya que las condiciones dependen del usuario que haya iniciado sesión...
pondré el ejemplo

Ésta sería la consulta general:

consulta = "SELECT campo1,campo2,campo5,campo10
FROM tabla1
INNER JOIN tabla2
ON tabla1.campo2 = tabla2.campo1
INNER JOIN tabla3
ON tabla1.campo5 = tabla3.campo10
AND tabla1.campo1 > 113
ORDER BY tabla1.campo1
"
Set rs = conexion.execute(consulta)

La cuál tengo que condicionar otras 4 veces y quedaría:

if session("usuario") then
consulta = "SELECT campo1,campo2,campo5,campo10
FROM tabla1
INNER JOIN tabla2
ON tabla1.campo2 = tabla2.campo1
INNER JOIN tabla3
ON tabla1.campo5 = tabla3.campo10
AND tabla1.campo1 > 113
AND tabla2.campo2 NOT IN (1,6,15,68,71,45,90,31,100)
ORDER BY tabla1.campo1
"
else if . . . .

Y así otras 3 veces modificando el rango del campo2 de la tabla1

Quería saber si hay posibilidad de condicionar con ASP los rangos antes de ejecutar la busqueda para ejecutarla una sola vez . . . supongo que sería mucho mas rápido . . . por ejemplo:

consulta = "SELECT campo1,campo2,campo5,campo10
FROM tabla1
INNER JOIN tabla2
ON tabla1.campo2 = tabla2.campo1
INNER JOIN tabla3
ON tabla1.campo5 = tabla3.campo10
AND tabla1.campo1 > 113
& if session("usuario") = "x" then &
AND tabla2.campo2 NOT IN (1,6,15,68,71,45,90,31,100)
& elseif session("usuario")="y" then &
AND tabla2.campo2 NOT IN (3,4,5,28,8,49)
& end if &
ORDER BY tabla1.campo1
"
Set rs = conexion.execute(consulta)

Obviamente me manda tanto errores de sintaxis como de objetos . . .
No sé a que grado sea posible . . . tal vez no lo es . . . tal vez la única manera es ejecutar la busqueda para cada condición . . .

Si alguien tiene una idea de la solución . . . lo agradecería demasiado . . . sé que suena raro . . . pero puede que sea mas óptimo . . . en fin . . .

MUCHAS Gracias . . . y nos seguiremos leyendo . . .
  #2 (permalink)  
Antiguo 11/08/2008, 22:31
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Condicionar SELECT con ASP

intenta primero averiguar que usuario es, si "X" o "Y", por ejemplo
Cita:
if session("usuario") = "x" then
condicion=" AND tabla2.campo2 NOT IN (1,6,15,68,71,45,90,31,100) "
elseif session("usuario")="y" then
condicion=" AND tabla2.campo2 NOT IN (3,4,5,28,8,49)"
end if

consulta = "SELECT campo1,campo2,campo5,campo10
FROM tabla1
INNER JOIN tabla2
ON tabla1.campo2 = tabla2.campo1
INNER JOIN tabla3
ON tabla1.campo5 = tabla3.campo10
AND tabla1.campo1 > 113 "&_
condicion&_
" ORDER BY tabla1.campo1
"
Set rs = conexion.execute(consulta)
tambien debes comprender la concatenacion, en esta situacion no puede concatenar una condicion dentro de una consulta, logicamente te da un error de tipo sintaxis

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 12/08/2008, 17:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 82
Antigüedad: 15 años, 10 meses
Puntos: 4
De acuerdo Respuesta: Condicionar SELECT con ASP


Muchas gracias Caballero del Dragón . . . hehe . . . ése era al punto . . . declarar la variable con la condición implicita y simplemente mandarla llamar en la consulta . . .
Creo que mi lógica no anda muy bien que digamos . . .

Bien . . . Tema Concluido . . . muchas gracias por ése certero aporte . . .
nos seguimos leyendo ! !
  #4 (permalink)  
Antiguo 14/08/2008, 23:04
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 7 meses
Puntos: 655
Respuesta: Condicionar SELECT con ASP

Trasladado de BD a ASP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
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 12:40.