consulta entre datas

Delphi

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

Adelor Silva

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

21/01/2006

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+


GOSTEI 0
Adelor Silva

Adelor Silva

21/01/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!!!


GOSTEI 0
Vinicius2k

Vinicius2k

21/01/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+


GOSTEI 0
Adelor Silva

Adelor Silva

21/01/2006

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;


GOSTEI 0
Vinicius2k

Vinicius2k

21/01/2006

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+


GOSTEI 0
Adelor Silva

Adelor Silva

21/01/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???


GOSTEI 0
Edilcimar

Edilcimar

21/01/2006

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


GOSTEI 0
Vinicius2k

Vinicius2k

21/01/2006

[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+


GOSTEI 0
Adelor Silva

Adelor Silva

21/01/2006

Muito Obrigado!!!


GOSTEI 0
POSTAR