Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Pasar parametros a SQL por medio DE Tquery (https://www.clubdelphi.com/foros/showthread.php?t=22799)

JELIRM 28-06-2005 00:22:41

Pasar parametros a SQL por medio DE Tquery
 
Hola,
Tengo un formulario donde tengo mi reporte con sus respectivos componentes, QuickRep su Query1 y
su respectivo Datasource. en mi Query1 en su proiedad SqL
tiene el siguiente código Sql .

Select fecha,nombre,edad from mitabla

Mi reporte es funcional; pero lo que quiero hacer ahora es meterle parametros al query1 como por ejemplo quiero desde un miniformnulario que se
cargue previo al reporte darle un rango de fecha por ejemplo que me muestre la consulta con los campos descritos en la consulta anteriror con la condicion que sean de fecha 01-01-2005 al 03-01-2005.


Las caidas hacen aprender.

--Saludos.

vtdeleon 28-06-2005 00:27:34

Saludos
Puedes usar la Clausura Where
Código SQL [-]
 Select fecha,nombre,edad from mitabla
 where fecha between #01/01/2001# and #02/02/2000#
Suerte

roman 28-06-2005 00:27:43

Por ejemplo

Código SQL [-]
Select fecha,nombre,edad from mitabla
where fecha between :fecha_inicial and :fecha_final

Antes de abrir la consulta sustituyes los parámetros con


Código Delphi [-]
Query1.ParamByName('fecha_inicial').AsDate := fechaInicial;
Query1.ParamByName('fecha_final').AsDate := fechaFinal;

donde fechaInicial y fechaFinal serían dos variables de tipo TDate con los valores adecuados.

// Saludos

vtdeleon 28-06-2005 00:31:26

Por Segudos :D

Raptor 28-06-2005 00:34:22

Saludos.

una posible sobucion es crear un procedure dentro del formulario del reporte mas o menos asi :

procedure Tform1.LoadRpt(Const Fecha:TDate;aPrint:boolean=false);
Const
aConsulta = 'Select * From Cliente Where fecha = "%s" ';
begin

With MiQuery do begin
Close;
Sql.Add(format(aConsulta,[formatdatetime('mm/dd/yyyy',Fecha)]));
open;
if ismpty then begin
Close;
Showmessage('Registro no encontrado...');
exit;
end;


if aprint then
quickrpt.print
else quickrpt.preview;

//--[Suerte espero aberte ayudado... :D ]--

end;

end;

Neftali [Germán.Estévez] 28-06-2005 09:18:42

TAG's:

delphi (entre corchetes)
...
/delphi (entre corchetes)

...no es tan difícil...:D:D:D:D
(de buen rollo eh!!!!)

JELIRM 29-06-2005 19:45:20

"me da error marcoszorrilla!"
 
pongo la instruccion Sql en la propiedad del Query1
Select fecha,nombre,edad from mitabla
where fecha between :fecha_inicial and :fecha_final

y luego al ir a poner a True la propiedad Active del Query me da el siguiente
error textual "query1:Field 'fecha_inicial'is of an unknow type

roman 29-06-2005 19:59:45

No soy marcoszorrilla y pregunto, ¿leiste esta parte?

Cita:

Empezado por roman
Antes de abrir la consulta sustituyes los parámetros con

Código Delphi [-]
Query1.ParamByName('fecha_inicial').AsDate := fechaInicial;
Query1.ParamByName('fecha_final').AsDate := fechaFinal;

// Saludos

JELIRM 29-06-2005 20:46:52

Si Disculpa Roman!!
 
Hola, Disculpa, pero esque estaba con otro hilo sobre otro tema con marcoszorrilla, y si lei esa parte;y no era el problema pero ya lo resolvi, este consistia en que no se habia definido el tipo de datos para el params que es este caso era FechaInicial y fechaFinal. estos los defini en la propiedad params del Tquery luego te aparecen por defecto los dos parametros que definistes en la instruccion sql: FechaInicial y Final y al posiionar el puntero me despliega nuevas propiedades entre ellas DataType y alli se las defini.
Lo que tu me decias que si ya habia leido la parte que me hicistes enfasis de tu respuesta es cuando ya voy a pasar el parametro y claro este debe ser igual alque se le define en la propiedad que ya te mencione.
eso era todo.>>

Gracias por tu ayuda que fue de gran soporte.
ha y disculpa por la confusion el errar es de humanos...

Saludos,

El que persevera alcanza

roman 29-06-2005 20:51:25

:confused: Pues es raro. La definición del tipo de datos del parámetro no debería ser necesaria ya que AsDate se encarga precisamente de indicar que el tipo es DateTime.

// Saludos


La franja horaria es GMT +2. Ahora son las 14:51:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi