SQL - Tipos incompatíveis

Delphi

02/04/2004

SQL, PROBLEMAS


EU TO TENTANDO FAZER UNS FILTRO EM SQL.. SOH QUE TA DANDO UNS ERRO...
ALGUEM PODERIA ME AJUDAR????

PRIMEIRO 1

Query1.sql.clear;
Query1.sql.add(´select * from despesas where data BETWEEN ´ + maskedit1.text + ´and ´+ maskedit2.text);
Query1.open;



APARECE O SEGUINTE ERRO
PROJECT.EXE RAISED EXCEPTION CLASS EDBENIGNEERROR WHITH MESSAGE
´TYPE MISMATCH IN EXPRESSION´.
PROCESS STOPPED . USE STEP OR RUN TO CONTINUE

segundo...2

Query1.sql.clear;
Query1.sql.add(´select * from despesas where Descricao = ´ + maskedit3.text);
Query1.open;


APARECE O SEGUINTE ERRO
PROJECT.EXE RAISED EXCEPTION CLASS EDBENIGNEERROR WHITH MESSAGE
´INVALID FIELD NAME.GASOLINA´.
PROCESS STOPPED . USE STEP OR RUN TO CONTINUE


SE ALGUEM PUDER ME AJUDA..
FICO GRATO

[b:04014af2c3][color=red:04014af2c3]Título editado pelo Moderador (AZ) - Removido: ´SQL, PROBLEMAS´
Leia as regras.[/color:04014af2c3][/b:04014af2c3]


Davefloripa

Davefloripa

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

02/04/2004

1o.

Query1.sql.clear; 
Query1.sql.add(´select * from despesas where data BETWEEN :data_ini and :data_fim´); 
Query1.ParamByName(´data_ini´).AsDate := StrToDate(maskedit1.text);
Query1.ParamByName(´data_fim´).AsDate := StrToDate(maskedit2.text);
Query1.Prepare;
Query1.open;


2o.

Query1.sql.clear; 
Query1.sql.add(´select * from despesas where Descricao = ´ + maskedit3.text);
Query1.Prepare;
Query1.open;



GOSTEI 0
Jsaraujo

Jsaraujo

02/04/2004

Boa tarde,

sugiro que vc use parametros, seria melhor vai ficar da seguinte maneira:

1º caso:

Query1.sql.close;
Query1.sql.text:=´select * from despesas where data BETWEEN :inicio and :fim´;
Query1.sql.params[0].value:=maskedit1.text;
Query1.sql.params[1].value:=maskedit2.text;
Query1.open;

2º caso:

este erro está acontecendo porque provavelmente esta faltando campos na query, de 2 cliques na query1 e clique em add all fields.

A sua consulta SQL tambem pode ser feita utilizando o quotedstr vai ficar assim para os 2 casos:

Query1.sql.close;
Query1.sql.clear;
Query1.sql.add(´select * from despesas where Descricao = ´ + quotedstr(maskedit3.text));
Query1.open;

Atenciosamente...


GOSTEI 0
POSTAR