Delphi - Problemas con Query reporte

 
Vista:

Problemas con Query reporte

Publicado por antonio cast (75 intervenciones) el 30/01/2006 16:11:56
Me mandaron este código para hacer un reporte por fechas, (desde, hasta), pero tengo algunos errores, en un form puse un boton y los 2 DateTimePicker, en el OnClick del Boton escribi el código, y de un RadioButton llamo el reporte, que logicamente ya la tengo diseñada con sus respectivos campos para ver el reporte de la fecha de inicio a la fecha final (desde, hasta)

Query1.Clear;
Query1.Add('Select * from Ingresos where fechapago >= :fecha1 and fechapago <= :fecha2');
Query1.Params.Parambyname('fecha1').asstring:= DTPDesde;
Query1.Params.Parambyname('fecha2').asstring:= DTPHasta;
Query1.Open;

no se que pasa pero los errores que tengo

[Error] Unit5.pas(324): Undeclared identifier: 'Clear'
[Error] Unit5.pas(325): Undeclared identifier: 'add'
[Error] Unit5.pas(327): Incompatible types: 'String' and 'TDateTimePicker'
[Error] Unit5.pas(328): Incompatible types: 'String' and 'TDateTimePicker'
[Fatal Error] Project1.dpr(23): Could not compile used unit 'Unit5.pas'

haber si me pueden ayudar..
les puse los errores como estan en la maquina cuando quiero compilar...

en Clear me pide que escriba ClearFiels
en Add no lo encuentra, no sale en el grupo... sera que necesito otro parecido...?
Y el String me dice que no es compatible con DateTimePicker

Si me pueden ayudar se los agradesco...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con Query reporte

Publicado por Dr Juzam (821 intervenciones) el 30/01/2006 17:19:46
Si quieres modifcar el valor SQL del Query debes ponerlo así:

Query1.SQL.Clear; //Lo que queremos modificar es la propiedad SQL
Query1.SQL.Add('Select * from Ingresos where fechapago >= :fecha1 and fechapago <= :fecha2');
Query1.Params.Parambyname('fecha1').asstring:= DTPDesde;
Query1.Params.Parambyname('fecha2').asstring:= DTPHasta;
Query1.Open;

Ahora, si quieres usar fechas en los parámetros, debes especificarlo así:

Query1.SQL.Clear;
Query1.SQL.Add('Select * from Ingresos where fechapago >= :fecha1 and fechapago <= :fecha2');
Query1.Params.Parambyname('fecha1').AsDate:= DTPDesde.Date; {Si no, solo nos referimos al objeto TDateTimePicker}
Query1.Params.Parambyname('fecha2').AsDate:= DTPHasta.Date;
Query1.Open;

Consulta la ayuda sobre los errores de compilación y los objetos que uses. Te ahorrará mucho tiempo. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con Query reporte

Publicado por Omar Gasca (1 intervención) el 02/02/2006 00:58:37
Los errores que te marca son porque los métodos Clear y Add son de un objeto de tipo StringList, que es el tipo de la propiedad SQL del Query, por lo que debes escribir tus líneas como sigue:
Query1.SQL.Clear;
Query1.SQL.Add;

Respecto a las fechas, tú estás pasando el parámetro como cadena de caracteres, así que tienes dos opciones:
Query1.Params.Parambyname('fecha1').AsDate:= DTPDesde.Date;
Query1.Params.Parambyname('fecha2').AsDate:= DTPHasta.Date;

o también puedes escribir:
Query1.Params.Parambyname('fecha1').AsString:= FormatDateTime('dd/mm/yyy', DTPDesde.Date);
Query1.Params.Parambyname('fecha2').AsString:= FormatDateTime('dd/mm/yyy', DTPHasta.Date);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar