PDA

Ver la Versión Completa : Consultas de usuario parametrizadas


gorsan
07-04-2008, 21:25:02
Hola foro.
Hoy busco informacion sobre como crear un metodo de consultas con parametros y que sea el usuario quien introduzca estos.
Ya me he construido un programita que hace de editor SQL a traves del cual construyo sentencias, ya sean desde scripts previamente realizados o desde cero, y funciona bien, pero mi problema viene con los parametros. No se como establecer la interacion entre el usuario y el programa con los parametros.
He mirado por la red y he encontrado un pequeño tutorial de Jose Alonso pero no explica bien este aspecto. Habla de un script algo asi:


/*
{DESDE;D;Desde fecha;}
{HASTA;D;Hasta fecha;}
{CLIENTE;N;Codigo del cliente;}
*/

SELECT F.FECHA, C.NOMBRE, SUM(F.BASE_IMP) BASE, SUM(F.TOTAL_IVA) IVA, SUM(F.IMPORTE_TOTAL) TOTAL
FROM FACTURAS F INNER JOIN CLIENTES C ON(F.CLIENTE=C.CODIGO)
WHERE C.CODIGO=¿CLIENTE? AND (F.FECHA>=¿DESDE? AND F.FECHA<=¿HASTA?)
GROUP BY F.FECHA, C.NOMBRE


Pero luego no lo explica bien. Crea una funcion que saca los parametros del script y los procesa. El metodo parece interesante pero no lo terminade explicar bien. ¿Alguien conoce el tutorial de que hablo? ¿Alguien me puede echar un cable con esto o indicarme donde encontrar informacion?
Trabajo con IBX6 y Delphi 7
Gracias por la ayuda.

jachguate
08-04-2008, 02:42:11
No conozco el citado manual, pero creo que es muy simple.

En delphi, en casi todos los componentes de acceso a datos que conozco, los parámetros se identifican con un signo de dos puntos. Creo recordar que ADO Vs. SQL Server también acepta la arroba.

Lo cierto, es que podes pedirle a Delphi que se encargue de identificar los parámetros, en conjunto con el servidor de base de datos. ¿Cómo?, asignando la propiedad SQL introducida por el usuario, preparando la consulta, y luego revisando la propiedad params.

Finalmente, podrías preparar un formulario con tantos elementos como esta coleccion contenga, para permitir al usuario introducir el valor de cada uno de ellos, asignar sus valores y finalmente ejecutar la consulta.

Es solo una idea, con el afán de ilustrarte un camino, a mi forma de ver, seguro y sencillo.

Hasta luego.

;)

gorsan
08-04-2008, 16:11:09
Gracias por tu respuesta. Pero ... ¿podrias ponerme algun ejemplo?
Gracias

Delphius
08-04-2008, 16:36:37
Hola gorsan, encontrarás infinidad de ejemplos si emplearas el buscador.
Emplea como palabras claves las palabras: parámetros, ParamByName, Params, filtrado, fechas.

Hay buen material dando vuelta por los foros.

Si tienes nuevas dudas vuelve aqui y las tratamos.

Saludos,

jachguate
08-04-2008, 17:30:53
¿podrias ponerme algun ejemplo?
Gracias

De manera muy simple, y sin validar sintaxis en Delphi:


Query1.SQL.Text := Memo1.Lines.Text;
Query1.prepare;
for I := 0 to Query1.Params.Count - 1 do
Query1.Params[I].Value := PedirParametro(Query1.Params[I].Name);
Query1.Open;


Hasta luego.

;)