SQL iniciante
09/02/2003
0
estou fazendo assim
var
data_inicial : string;
data_final : string;
begin
data_inicial := datetostr(data_inicial_consulta_compras.datetime);
data_final := datetostr(data_final_consulta_compras.datetime);
dados.consulta_compras.close;
dados.consulta_compras.sql.clear;
dados.consulta_compras.sql.add(´select * from compras where data_compra >= ´ + data_inicial + ´ and data_compra <= ´ + data_final);
dados.consulta_compras.open;
end;
o problema é q com isso está dando uma mensagem ´type mismacth in expression´. Na tabela este campo é configurado como date.
se alguém puder ajudar fico agradecido
Anonymous
Posts
09/02/2003
Anonymous
Mude o tipo que deve funcionar.
Um abraço.
JEAN SANTOS.
09/02/2003
Sidfaria
2 - Defina as variáveis data_inicial e data_final como TDateTime;
3 - Crie a instrução SQL assim:
dados.consulta_compras.SQL.Text :=
´Select * from compras where data_compra >= :data_inicial and ´ +
´ data_compra <= :data_final´;
4 - O :data_inicial e :data_final são parâmetros de pesquisa que você passará no comando SQL, da seguinte forma:
dados.consulta_compras.ParamByName(´data_inicial´ ).AsDateTime :=
NomeDaTabelaDataInicial.AsDateTime;
a instrução será no formato acima se você estiver pegando a data em uma outra tabela (NomeDaTabela). Se a data vier de um Edit em um Form(Tela) o comando será:
dados.consulta_compras.ParamByName(´data_inicial´ ).AsDateTime :=
StrToDate(Edit1.Text);
// repita o mesmo comando para o parâmetro data_final.
abra a query.
09/02/2003
Anonymous
sua instrução funcionou corretamente
até mais
:)
Clique aqui para fazer login e interagir na Comunidade :)