consulta entre datas

21/01/2006

boa noite pessoal...
e estou precisando de mais uma ajuda...

não sei como se faz uma pesquisa entre datas utilizando SQL, e se ela é feita em uma IBQuery!!!
e de que forma mostrar esta pesquisa para o usuário... (Form, Relatório)

utilizo BD InterBase

Tabela - TAB_ENTRADA_PRODUTO

utilizo as variáveis (DataIni, DataFim : TDateTime;) para capturar as duas datas que será feito a pesquisa...

não sei se fui claro... mas se puderem me ajudar agradeço...


Adelor Silva

Respostas

21/01/2006

Vinicius2k

Colega,

with <SUA_QUERY> do
begin
  Close;
  SQL := ´select * from <SUA_TABELA> where <SEU_CAMPO_DATA> between :datainicial and :datafinal´;
  ParamByName(´datainicial´).asDate := DataIni;
  ParamByName(´datafinal´).asDate := DataFim;
  Open;
end;


T+


Responder Citar

22/01/2006

Adelor Silva

Desculpas... mas não entendi... sou iniciante em delphi
onde eu digito estas linhas de código... tentei colocar na SQL da IBQuery, mas dis que falta parametros...

se vc puder mandar mais detalhado fico grato...

obrigado!!!


Responder Citar

22/01/2006

Vinicius2k

Colega,

Editei o código inicialmente postado de forma a facilitar sua leitura.

O código poderia ser colocado no seu botão ´Pesquisar´, por exemplo. Você deve substituir os nomes entre ´<...>´ pelos nomes reais que você está utilizando.

Este código cria a instrução SQL para a Query e informa os valores para os parametros da instrução baseado nas suas duas variáveis ´DataIni´ e ´DataFim´.

T+


Responder Citar

22/01/2006

Adelor Silva

with DataModule1.Qry_Pesq_Datas do
begin
Close;
SQL := ´select * from Tab_Entrada_Produto where Data_Entr_Prod between :DataInicial and :DataFinal´; [color=blue:1d6906e620]// neste ponto ocorre o seguinte erro: Incompatible types: ´TString´ and ´String´[/color:1d6906e620]
ParamByName(´DataInicial´).AsDate := DateTimePickerInicio.Date;
ParamByName(´DataFinal´).asDate := DataFim;
Open;
end;
end;


Responder Citar

22/01/2006

Vinicius2k

Colega,

Por favor, me desculpe. Cometi um erro ao postar o código. O correto:
...
SQL.Text := ´select * from Tab_Entrada_Produto where Data_Entr_Prod between :DataInicial and :DataFinal´;
...

Esquecí-me de [b:9f3d4452f0]´.Text´.[/b:9f3d4452f0]

T+


Responder Citar

22/01/2006

Adelor Silva

muito obrigado pela ajuda... a pesquisa esta funcionando...

só mais uma pergunta...

no object inspector se eu tentar colocar a IBQuery como Active True, da erro dizendo que:

Tab_Entr_Prod: Field ´DataInicial´ not found

isso é normal???


Responder Citar

22/01/2006

Edilcimar

DataIncial não é um campo é um parâmetro, o campo é Data_Entr_Prod


Responder Citar

22/01/2006

Vinicius2k

[quote:197693145c=´Adelor da Silva´]no object inspector se eu tentar colocar a IBQuery como Active True, da erro dizendo que:
Tab_Entr_Prod: Field ´DataInicial´ not found

isso é normal???[/quote:197693145c]

Sim. Queries com parametros (:DataInicial e :DataFim) não podem ser abertas em tempo de projeto.

T+


Responder Citar

23/01/2006

Adelor Silva

Muito Obrigado!!!


Responder Citar