Buscador

12/02/2004 - 19:08 por Giox | Informe spam
Hola Tengo la siguiente pregunta
estoy haciendo un buscador en ASP de unos contactos de la siguiente forma

un formulario con criterios
nombre, fecha de creacion, area a la que pertenece

cuando lo proceso viene la duda porque el form puede venir sin criterios
osea una consulta generica

SELECT * FROM EMPLEADOS

pero cmo saber si viene algo en la variables es decir

si viene algun criterio tengo que hacer los siguiente como meteria el WHERE

SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%'

ademas si viene otro criterio como meteria el AND

SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%' AND AREA = 1

Mil gracias por alguna sugerencia

Preguntas similare

Leer las respuestas

#1 Matias Iacono
12/02/2004 - 19:23 | Informe spam
Creo que es muy facil...

Puedes concatenar una cadena de texto e ir armando tu sentencia SQL antes de
ejecutarla... para esto deberias condicionar el flujo de datos dependiendo
de lo que tengas, por ejemplo:


sql = "select * from Tabla"

if len(trim(Variable1) <> 0 then
sql = sql & " where Dato1=" & Variable1
end if



Y asi hasta que obtengas lo que quieres.

"Giox" escribió en el mensaje
news:%
Hola Tengo la siguiente pregunta
estoy haciendo un buscador en ASP de unos contactos de la siguiente forma

un formulario con criterios
nombre, fecha de creacion, area a la que pertenece

cuando lo proceso viene la duda porque el form puede venir sin criterios
osea una consulta generica

SELECT * FROM EMPLEADOS

pero cmo saber si viene algo en la variables es decir

si viene algun criterio tengo que hacer los siguiente como meteria el


WHERE

SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%'

ademas si viene otro criterio como meteria el AND

SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%' AND AREA = 1

Mil gracias por alguna sugerencia


Respuesta Responder a este mensaje
#2 Freddy Cáceres
12/02/2004 - 19:34 | Informe spam
yo tengo algo parecido en un SP por ahy y tb es para contactos y lo hice
así.

dos variables:


@vcSelect = "Select * from Tabla"

if parametro1 <> "" then Condicion = " Parametro1= " & parametro1 & " and "
if parametro2 <> "" then Condicion = Condicion & " Parametro2= " &
parametro2 & " and "
if parametro3 <> "" then Condicion = Condicion & " Parametro3= " &
parametro3 & " and "

'y finalmente rematamos agregando where(al cominezo) y quitando un posible
and
if Condicion <> "" then Condicion = " Where " & mid(Condicion,1,
len(Condicion)-4)

'SQL final
@vcSelect & Condicion

y eso seria Tutty si no viene ningun parametro Condicion estara vacio y el
execute solo ara el select a la tabla.

Saludos
-
Freddy Cáceres
Santiago - Chile

"Giox" escribió en el mensaje
news:%
Hola Tengo la siguiente pregunta
estoy haciendo un buscador en ASP de unos contactos de la siguiente forma

un formulario con criterios
nombre, fecha de creacion, area a la que pertenece

cuando lo proceso viene la duda porque el form puede venir sin criterios
osea una consulta generica

SELECT * FROM EMPLEADOS

pero cmo saber si viene algo en la variables es decir

si viene algun criterio tengo que hacer los siguiente como meteria el


WHERE

SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%'

ademas si viene otro criterio como meteria el AND

SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%' AND AREA = 1

Mil gracias por alguna sugerencia


Respuesta Responder a este mensaje
#3 Giox
12/02/2004 - 19:35 | Informe spam
Mil Gracias
si eso estoy haciendo
strSQL = "SELECT * FROM EMPLEADOS "

evaluo si hay algun criterio
iF VAR1 <> "" OR VAR2 <> "" Then
strSQL = strSQL & "WHERE "
le meto el WHERE

y empiezo a valuar cual es
iF VAR1 <> "" Then
strSQL = strSQL & "var1 = 1 and "
a todas al final les meto el and

y al final se lo recorto
asi
strSQL = Left(strSQL, Len(strSQL)-4)

por si a alguien le srive

Saludos Giox


"Matias Iacono" escribió en el mensaje
news:%
Creo que es muy facil...

Puedes concatenar una cadena de texto e ir armando tu sentencia SQL antes


de
ejecutarla... para esto deberias condicionar el flujo de datos dependiendo
de lo que tengas, por ejemplo:


sql = "select * from Tabla"

if len(trim(Variable1) <> 0 then
sql = sql & " where Dato1=" & Variable1
end if



Y asi hasta que obtengas lo que quieres.

"Giox" escribió en el mensaje
news:%
> Hola Tengo la siguiente pregunta
> estoy haciendo un buscador en ASP de unos contactos de la siguiente


forma
>
> un formulario con criterios
> nombre, fecha de creacion, area a la que pertenece
>
> cuando lo proceso viene la duda porque el form puede venir sin criterios
> osea una consulta generica
>
> SELECT * FROM EMPLEADOS
>
> pero cmo saber si viene algo en la variables es decir
>
> si viene algun criterio tengo que hacer los siguiente como meteria el
WHERE
>
> SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%'
>
> ademas si viene otro criterio como meteria el AND
>
> SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%' AND AREA = 1
>
> Mil gracias por alguna sugerencia
>
>


Respuesta Responder a este mensaje
#4 Freddy Cáceres
12/02/2004 - 19:53 | Informe spam
revisa el ejemplo que te puse, código mas limpio, mucho mas mantenible,
optimizado y muchas menos comparaciones(if), utiliza mejor una sola
variable(de condición) y le vas metiendo altiro las condiciones.
cualquier duda háznosla saber.

Saludos
-
Freddy Cáceres
Santiago - Chile

"Giox" escribió en el mensaje
news:%
Mil Gracias
si eso estoy haciendo
strSQL = "SELECT * FROM EMPLEADOS "

evaluo si hay algun criterio
iF VAR1 <> "" OR VAR2 <> "" Then
strSQL = strSQL & "WHERE "
le meto el WHERE

y empiezo a valuar cual es
iF VAR1 <> "" Then
strSQL = strSQL & "var1 = 1 and "
a todas al final les meto el and

y al final se lo recorto
asi
strSQL = Left(strSQL, Len(strSQL)-4)

por si a alguien le srive

Saludos Giox


"Matias Iacono" escribió en el mensaje
news:%
> Creo que es muy facil...
>
> Puedes concatenar una cadena de texto e ir armando tu sentencia SQL


antes
de
> ejecutarla... para esto deberias condicionar el flujo de datos


dependiendo
> de lo que tengas, por ejemplo:
>
>
> sql = "select * from Tabla"
>
> if len(trim(Variable1) <> 0 then
> sql = sql & " where Dato1=" & Variable1
> end if
>
>
>
> Y asi hasta que obtengas lo que quieres.
>
> "Giox" escribió en el mensaje
> news:%
> > Hola Tengo la siguiente pregunta
> > estoy haciendo un buscador en ASP de unos contactos de la siguiente
forma
> >
> > un formulario con criterios
> > nombre, fecha de creacion, area a la que pertenece
> >
> > cuando lo proceso viene la duda porque el form puede venir sin


criterios
> > osea una consulta generica
> >
> > SELECT * FROM EMPLEADOS
> >
> > pero cmo saber si viene algo en la variables es decir
> >
> > si viene algun criterio tengo que hacer los siguiente como meteria el
> WHERE
> >
> > SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%'
> >
> > ademas si viene otro criterio como meteria el AND
> >
> > SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%' AND AREA = 1
> >
> > Mil gracias por alguna sugerencia
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Jhonny Vargas P.
12/02/2004 - 19:55 | Informe spam
Hola,

Puedes hacer todo en el mismo query.

Select * From Tabla
Where (NOMBRE LIKE '%EMPLEADO%' Or NOMBRE='') AND
(AREA = 1 Or AREA=0) AND
(FECHA = '20030520' Or FECHA IS NULL)


Es un ejemplo, pero lo puedes hacer todo en uno!.


Saludos,
Jhonny Vargas P. [MS-MVP]
Santiago de Chile
http://www.mvp.cl




"Giox" escribió en el mensaje
news:#
Hola Tengo la siguiente pregunta
estoy haciendo un buscador en ASP de unos contactos de la siguiente forma

un formulario con criterios
nombre, fecha de creacion, area a la que pertenece

cuando lo proceso viene la duda porque el form puede venir sin criterios
osea una consulta generica

SELECT * FROM EMPLEADOS

pero cmo saber si viene algo en la variables es decir

si viene algun criterio tengo que hacer los siguiente como meteria el


WHERE

SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%'

ademas si viene otro criterio como meteria el AND

SELECT * FROM EMPLEADOS WHERE NOMBRE LIKE '%EMPLEADO%' AND AREA = 1

Mil gracias por alguna sugerencia


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida