SQL iniciante

09/02/2003

0

não está dando certo um consulta aqui, iniciante é um problema
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

Anonymous

Responder

Posts

09/02/2003

Anonymous

Como o campo da tabela é DATE o tipo das variáveis data_inicial e data_final também tem que ser DATE.

Mude o tipo que deve funcionar.

Um abraço.

JEAN SANTOS.


Responder

09/02/2003

Sidfaria

1 - Defina a data_compra em sua Tabela como Date (D);
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.


Responder

09/02/2003

Anonymous

muito obrigado Sidfaria

sua instrução funcionou corretamente

até mais

:)


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar