Fazer cunsulta entre duas datas com Delphi 3

Delphi

05/08/2010

Tenho uma tabela chamada Tb_Vendas   Nessa tabela eu tenho uma campo chamado DataVenda(Date), e quero que o usuário digite a data inicial em um campo edit_DataInicio e a data final em um campo edit_DataFinal, e então o programa filtra todas as vendas que estiverem entre essas duas datas.   Tentei Utilizar SQL, mas eu só consigo selecionar a todas as vendas da tabela, quando eu dou o comando:                 query_Vendas.close; query_Vendas.SQL.Clear; query_Vendas.SQL.Text:= 'SELCT * from query_Vendas  WHERE DataVenda >= edit_Inicial.text';  // filtrando todas as vendas mairoes do que a data inicial query_Vendas.Prepare; query_Vendas.Open;     Ele não reconhece o edit_Inicial, já tentei colocar esse valor em uma variável, mas também não obtive sucesso.....   .  Por favor me ajudem .....
Eduardo

Eduardo

Curtidas 0

Respostas

Eriley Barbosa

Eriley Barbosa

05/08/2010

query_Vendas.close; query_Vendas.SQL.Clear; query_Vendas.SQL.Text:= 'SELECT * from Vendas  WHERE DataVenda >= ' + QuotedStr(edit_Inicial.text) + ' AND DataVenda <= ' + QuotedStr(edit_final.text) ;  // filtrando todas as vendas mairoes do que a data inicial query_Vendas.Prepare; query_Vendas.Open;   Se não conseguir, poste a estrutura de sua tabela e o código que está utilizando.   Atenciosamente   Eriley
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

05/08/2010

recomendo não concatenar as datas. prefira usar parâmetros, para evitar problemas no formato da data.

query_vendas.close;
query_vendas.SQL.Text := 'select * from vendas where datavenda between :datainicial and :datafinal';
query_vendas.ParamByName('datainicial').AsDate := StrToDate(edit_Inicial.Text);
query_vendas.ParamByName('datafinal').AsDate := StrToDate(edit_Final.Text);
query_vendas.Open;


GOSTEI 0
Eduardo

Eduardo

05/08/2010

  Parece que deu certo........ Qualquer coisa eu escrevo de novo Muito obrigado....
GOSTEI 0
POSTAR