Data
Tenho um campo data em minha tabela, uso paradox. No bd configurei o campo como D (date). No form tenho 2 botões com os quais faço a seguintes consultas sql:
1° Botão: Consultar datas menores que a do maskedit2
query1.close;
query1.sql.clear;
query1.sql.add (´select * from data where data <´+quotedstr(maskedit2.text)+´order by data´);
query1.open;
2° Botão: Consultar datas maiores que a do maskedit2
query1.close;
query1.sql.clear;
query1.sql.add (´select * from data where data >´+quotedstr(maskedit2.text)+´order by data´);
query1.open;
Quando a data é por exemplo:28/11/1970 e tenho ela gravada na tabela e aperto o 1º botão, para consultar datas menores que esta, recebo a msg:
TYPE MISMATCH IN EXPRESSION
Qual o meu erro ?
Alguém poderia me dar uma ajuda ??
E sem querer abusar, como seria com o componente table ??
Valeu galera, um abraço a todos !!
1° Botão: Consultar datas menores que a do maskedit2
query1.close;
query1.sql.clear;
query1.sql.add (´select * from data where data <´+quotedstr(maskedit2.text)+´order by data´);
query1.open;
2° Botão: Consultar datas maiores que a do maskedit2
query1.close;
query1.sql.clear;
query1.sql.add (´select * from data where data >´+quotedstr(maskedit2.text)+´order by data´);
query1.open;
Quando a data é por exemplo:28/11/1970 e tenho ela gravada na tabela e aperto o 1º botão, para consultar datas menores que esta, recebo a msg:
TYPE MISMATCH IN EXPRESSION
Qual o meu erro ?
Alguém poderia me dar uma ajuda ??
E sem querer abusar, como seria com o componente table ??
Valeu galera, um abraço a todos !!
Seneca
Curtidas 0
Respostas
Rafael_gamba
20/11/2003
Seu erro é simples. Veja o que vc escreveu :
query1.sql.add (´select * from data where data <´+quotedstr(maskedit2.text)+´order by data´);
Você está comparando uma data com uma string.
Compare data com data ex:
query1.sql.add (´select * from data where data <´+StrToDate(maskedit2.text)+´order by data´);
faça isso nas duas instruções!!
Um abraço!!!
query1.sql.add (´select * from data where data <´+quotedstr(maskedit2.text)+´order by data´);
Você está comparando uma data com uma string.
Compare data com data ex:
query1.sql.add (´select * from data where data <´+StrToDate(maskedit2.text)+´order by data´);
faça isso nas duas instruções!!
Um abraço!!!
GOSTEI 0
Namerda
20/11/2003
VOCE PRECISA APENAS COLOCAR A DATA ENTRE ASPAS :
query1.sql.add (´select * from data where data < ´´+quotedstr(maskedit2.text)+´´ order by data´);
AJUDOU ???
OBS... ACHO Q A DICA DO COLEGA ACIMA NAUM FUNCIONA...
query1.sql.add (´select * from data where data < ´´+quotedstr(maskedit2.text)+´´ order by data´);
AJUDOU ???
OBS... ACHO Q A DICA DO COLEGA ACIMA NAUM FUNCIONA...
GOSTEI 0
Denis200
20/11/2003
caro colega com o componete table ficaria da seginte forma
tabela.filter:=´data <´+#39+maskedit2.text+39;
tente desta forma comigo funcionou.
tabela.filter:=´data <´+#39+maskedit2.text+39;
tente desta forma comigo funcionou.
GOSTEI 0
Seneca
20/11/2003
Obrigado a todos que tentaram me ajudar, vou tentar todas as dicas !
Valeu.
Valeu.
GOSTEI 0
Vanius
20/11/2003
Fera, tente isto.
Acho q fica mais apresentavel.
query1.sql.add (´select * from data where data < :Data order by data´);
query1.ParamByName(´Data´).Value := StrToDateTime(maskedit2.text);
[]s,
Vanius
vaniusg@terra.com.br
Acho q fica mais apresentavel.
query1.sql.add (´select * from data where data < :Data order by data´);
query1.ParamByName(´Data´).Value := StrToDateTime(maskedit2.text);
[]s,
Vanius
vaniusg@terra.com.br
GOSTEI 0