
21/07/2005, 02:24
|
| | Fecha de Ingreso: mayo-2005
Mensajes: 93
Antigüedad: 20 años Puntos: 1 | |
yo tengo hecho un formulario que tira de una base de datos para obtener listados en exce.
Para ello realice una base de datos con los siguientes campos.
NomListado -> Nombre del listado para que lo vea el usuario
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
En los que aparecen la parte de la instrucción SQL necesaria en cada caso. El problema como tu bien dices son los parámetros de la parte where, pero se soluciona con otra tabla (en mi caso es un par de campos ya que solo pueden seleccionarse fechas y se encuentran en lamisma tabla) en la que aparezcan detallados los campos de la base de datos preparados para ser asignados. Es decir, aparecerían todos los campos de la base de datos que pueden ser seleccionados por algún criterio.
Te recomiendo además que aparezca una columna asociada en la que puedas tener el tipo de dato que se pueda relacionar por dos razones:
1.- como validación, y así para que no te pete la sentencia SQL
2.- Para añadir a la sentencia SQL los caracteres que delimitan los tipos de datos (mira al final de la respuesta qu lo entenderás mejor)
Una vez seleccionado el listado, aparecerían los campos susceptibles de ser pasados por parámetros y que has metido en la segunda tabla.
(Te recomiendo que realices una matriz de controles para este punto)
Y ahora soplo te queda juntar todo.
Es decir, vamos a poner un ejemplo:
SELECT
SELECT *
FROM
FROM TABLA1, TABLA2
WHERE
TABLA1.COD = TABLA2.COD
GROUP BY
""
HAVING
""
ORDER BY
TABLA1.COD, TABLA2.COD
Y los datos de la segunda tabla (obviamente tendrías que hacer un recordset para obtener todos los posibles parámetros para dcada sentencia)
Aqui aparecen las diferentes líneas que aparecerían al recorrer el recordset
TABLA1.NOM =
TABLA2.NOM =
Solo te quedaría añadir los AND u OR correspondientes, y sobre todo, poner los caracterres especiales que delimitan el tipo de datos que se va a pasar, y que te he recomendado que añadas la columna antes a la base de datos, es decir...
'' en caso de string
## en caso de date
....
Con todo esto, lo que consigues es un generador de SQL sencillo para cualquier usuario, ya que solo tienen que seleccionar los campos por los que desean buscar y no generar la sentencia completa.
Espero que te sirva de algo, creo que la idea está bien desarrollada, aunque igual me he liado un poco...
Un saludo y suerte
__________________ No te hubieran dado la capacidad de soñar sin darte también la posibilidad de convertir tus sueños en realidad |