Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/04/2008, 14:25
rdm
 
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires, Argentina
Mensajes: 57
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Como consultar a la base de datos a partir de los inputs que rellenes

Hola, yo he resuelto este tipo de consultas de la siguiente manera:

Tienes que armar un select que sea dinámico en función de los inputs que deseas utilizar, por ejemplo, dado tres parámetros: edad, sexo y apellido, en un string construyes la primer parte del select, la que no cambia, por ejemplo:

cadSQL = "SELECT * FROM tuTabla WHERE"

luego, en otra cadena irás construyendo el where del select como sigue:

cadWhere =""

if (edad>0) entonces
cadWhere = cadWhere + "edad = " + paramEdad
endif

if (sexo>0) entonces
if (cadWhere= "") entonces
cadWhere = cadWhere + "sexo =" + paramSexo
sino, cadWhere ya tiene contenido, o sea que entró en el if de edad, debes concatenar con un and quedando el anidamiento como sigue:
cadWhere = cadWhere + " AND sexo = " + paramSexo


bueno, con este pseudocódigo ya podrás imaginar como continuar, por último, debes concatenar la primer parte del select guardado en cadSQL con cadWhere y listo, ya tienes un SELECT dinámico que funcionará con todas las opciones de búsquedas que tengas y sus posibles combinaciones.

un último punto, al select final resultante podrás ordenarlo según lo necesites ya que la cadena de ordenamiento (ORDER BY campo1, campo2, campo3) también será fija al igual que la primer parte.

Por último, envias este código al motor de base de datos y lo capturas con un recordset, dataset, etc, etc, lo que estés usando para acumular los datos que devuelve el motor.

La desventaja que podrías observar es que tu tienes que resolver por código el select, pero esto me resulta mas económico que desarrollar "n" posibles procedimientos almacenados según la cantidad de combinaciones posibles.

Saludos y espero que te sirva esta idea.