Array
(
)

consulta entre datas

Adelor Silva
   - 21 jan 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...


Vinicius2k
   - 21 jan 2006

Colega,

#Código

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+


Adelor Silva
   - 22 jan 2006

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!!!


Vinicius2k
   - 22 jan 2006

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+


Adelor Silva
   - 22 jan 2006

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


Vinicius2k
   - 22 jan 2006

Colega,

Por favor, me desculpe. Cometi um erro ao postar o código. O correto:
#Código

...
SQL.Text := ´select * from Tab_Entrada_Produto where Data_Entr_Prod between :DataInicial and :DataFinal´;
...

Esquecí-me de ´.Text´.

T+


Adelor Silva
   - 22 jan 2006

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???


Edilcimar
   - 22 jan 2006

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


Vinicius2k
   - 22 jan 2006


Citação:
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???


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

T+


Adelor Silva
   - 23 jan 2006

Muito Obrigado!!!