Consultas recursivas

Hola, tengo un serio problema con un tipo de consultas. Tengo una tablas equipos y necesito sacar en un formulario una serie de datos de forma recvursiva, es decir, en el formulario tengo tres listas desplegables y un subformulario. En el primer desplegable elijo el tipo de equipo, en el segundo el modelo, en el tercero el tipo y en el subformulario me muestra los resultados de la búsqueda... El problema es como filtrar los datos de frorma recursiva, es decir: elijo el equipo y el subformulario me mostraría todos los equipos con ese nombre, después en el desplegable tipo aparecen solo los modelos de ese equipo y si elijo algún modelo en el subformulario me aparecerán los resultados del filtro equipo/modelo y en un tercer desplegable me aparecen los tipos de esos equipos y modelos que nos figuran en el subformulario y si yo eligiera un tipo me filtraría los resultados del subformulario para sacar una búsqueda por equipo, modelo y tipo. ¿Sabrías cómo hacerlo? Llevo dos semanas dándole vueltas y no se como solucionarlo...

1 respuesta

Respuesta
1
Te digo la técnica en pseudocodigo, ya lo adaptas tu a la la tecnologías que uses y caso particular.:
En un procedimiento
Crea una sentencia SQL con la base de lo que quieres resolver y ponle una condición trivial por ejemplo:
Select lo que sea from Tabla y llamala SQL_Main where 1=1
Crea un string por cada condición y que capture el valor si hay algo seleccionado
SQL1= AND EQUIPO=LISTA1.TEXT
SQL2=" AND TIPO=LISTA2.TEXT
Y así todas las condiciones que quieras.
Luego a la hora de buscar concatenas todo lo que necesites según la opción:
SQL=SQL & SQL1 & SQL2 etc...  o SQL=SQL & SQL3 etc..
Y ejecutas.
Ten en cuanta que si quieres que se ejecute cada vez que cambie algo el resultado final puede ser muy lioso ( el usuario no sabrá que hace) y muy lento, si la BD no responde con agilidad.
Lo mejor es ir forzando un orden puedes poner un 'Todos' en cada lista para obligar a que al menos se seleccione esa opción.
Gracias por ayudarme, pero a mi parecer seria muy lento si lo trabajo con varios datos y no seria muy modular .
Pero mi consulta era si no habira alguna función o alguna forma de Hacerlo de manera eficiente.
Algún modulo o aplicativo para solucionar el problema.
TE agradezco de antemano tu ayuda
Gracias
Je je, lo de modular y lentitud depende de como lo codifiques y de la BD :-)
Si quieres otra opción ( que se usa más para aplicaciones Web) es traerte toda laestructura y almacenarla en un array en el cliente. Después filtrar en función de las selecciones. Pero si son miles de datos ( 10 o 20.000) y es una aplicación clientes/servidor no es necesario, puede ser peor el remedio que la enfermedad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas