Problemas com SQL quot;dataquot;

Delphi

25/10/2005

No InterBase funciona desse forma.

select * from TAB_PONTO where FUNCIONARIO = 1 and Data>= ´09/24/2005´ and data <= ´09/27/2005´

No Delphi estou fazendo dessa forma, mas tem um problema, ele passa as datas no formato DD/MM/AAAA e o InterBase só aceita MM/DD/AAAA sempre quando executo o procedimento abaixo, gera o seguinte erro:

conversion erro from string ´´27/9/2005´

Modulo.setPonto.Close;
with Modulo.setPonto.SelectSQL do
begin
Clear;
Add(´select * from TAB_PONTO where FUNCIONARIO = ´+IntToStr(DBLookupComboBox1.KeyValue)+´ and Data >= ´´´+DateToStr(DateTimePicker1.Date)+´´´ and Data <= ´´´+DateToStr(DateTimePicker2.Date)+´´´´);
end;
Modulo.setPonto.Open;

O que devo mudar para que o delphi passe as datas no formato MM/DD/AAAA?


Ullrich

Ullrich

Curtidas 0

Respostas

Sistemald

Sistemald

25/10/2005

No Interbase para usar data no formato DD/MM/AAAA use xx.mm.aaaa

a diferença esta no ´.´ n lugar de ´/´.


recomendo fazer consulta desta forma:

select * from TAB_PONTO where FUNCIONARIO = 1 and Data>= :data1 and data <= :data2


no componente de acesso use:

query.params[0].asdate:= ´24/09/2005´;
query.params[1].asdate:= ´27/09/2005´;
query.open;


GOSTEI 0
Bruno Belchior

Bruno Belchior

25/10/2005

Modulo.setPonto.Close; 
with Modulo.setPonto.SelectSQL do 
Begin 
  Clear; 
  Add(´select * from TAB_PONTO where FUNCIONARIO = ´+
    IntToStr(DBLookupComboBox1.KeyValue)+ ´ and Data >= ´ +
    QuotedStr(FormatDateTime(´mm/dd/yyyy´, DateTimePicker1.Date)) +  
    ´ and Data <= ´ + QuotedStr(FormatDateTime(´mm/dd/yyyy´, 
    DateTimePicker2.Date)); 
end; 
Modulo.setPonto.Open;



GOSTEI 0
Marcio.theis

Marcio.theis

25/10/2005

Uma outra forma de fazer seira:

Modulo.setPonto.Close;
with Modulo.setPonto.SelectSQL do
    begin
    Clear;
    Add(´select *´);
    Add(´from TAB_PONTO´);
    Add(´where FUNCIONARIO = 1´);
    Add(´and Data>= :dtIni and data <= :dtFim´);
    end;
Modulo.setPonto.ParamByName(´dtIni´).Value:=StrToDate(DateToStr(DateTimePickerIni.Date));
Modulo.setPonto.ParamByName(´dtFim´).Value:=StrToDate(DateToStr(DateTimePickerFim.Date));
Modulo.setPonto.Open;



GOSTEI 0
Ronaldo.cutu

Ronaldo.cutu

25/10/2005

faça assim com as data

formatdatetime(´mm/dd/yyyy´, data_no_delphi)

att

Ronaldo


GOSTEI 0
Ullrich

Ullrich

25/10/2005

Obrigado a todos pela atenção.

A correção do procedimento feita pelo Bruno Belchior ficou muito boa. executei sem problemas, obrigado a todos pela ajuda.


GOSTEI 0
POSTAR