[firebase-br] Select com datas

Pedro Leonardo pleonardomv em bol.com.br
Sáb Nov 5 11:54:55 -03 2011


Pessoal tentei assim :

           QueryBusca.Close;
           QueryBusca.SQL.Clear;
           QueryBusca.SQL.Text := 'select * from Registro where Cod =:P00 
and :pDataAtual between DataInI and DataFim';
           QueryBusca.ParamByName('P00').AsString:= trim(EdtCodigo.Text);
           QueryBusca.ParamByName('pDataAtual').AsDate:= DATE;
           QueryBusca.ParamByName('DATAINI').AsDate:= DateDataINI.Date; //
           QueryBusca.ParamByName('DATAFIM').AsDate:= DateDataFim.Date ; //
           QueryBusca.Open;

Retorna um erro dizendo    "Parameter DataIni not found  (nao encontrado)"

Oque pode ser?

Obrigado
Leonardo



--------------------------------------------------
From: "Anticlei Scheid" <clei em geous.com.br>
Sent: Saturday, November 05, 2011 11:27 AM
To: "FireBase" <lista em firebase.com.br>
Subject: Re: [firebase-br] Select com datas

> Bom dia Leonardo
>
> Você inverteu os sinais de > e <, veja a correção :
>
> select * from Registro where Cod =:P00 and DataInicio <= :pDataAtual and
> DataFim >= :pDataAtual
>
> que é equivalente a :
>
> select * from Registro where Cod =:P00 and  :pDataAtual >= DataInicio
> and :pDataAtual
> <= DataFim
>
> mais fácil de entender e equivalente a :
>
> select * from Registro where Cod =:P00 and :pDataAtual between DataInicio
> and DataFim
>
> e não precisa usar dois parâmetro para a data atual (P01 E P02) pode usar
> somente um, pois se usar dois eles vão ter o mesmo valor : a data de hoje
> por exemplo
>
>
> Abraço
>
> Clei
> Geous Consultoria e Sistemas
>
>
> Em 5 de novembro de 2011 09:51, Pedro Leonardo 
> <pleonardomv em bol.com.br>escreveu:
>
>> Pessoal, estou tentando fazer um select usando datas e não encontrei
>> solucao
>>
>> Tenho um produto cadastrado com a data de vigência do mesmo. Tipo
>>
>> vDataIni = data inicial de vigência do produto
>> vDataFim = Data final de vigência do produto
>>
>> Preciso fazer um select para comparar se a data de hoje está entre a data
>> inicial e final, mas nao posso usar between
>>
>> Exemplo:
>>
>> QueryBusca.SQL.Text := 'SELECT * FROM REGISTRO WHERE Cod =:P00 and
>> DATAINICIO >:P01  AND DATAFIM  <: P02  ';
>>
>> Mas não retorna nada porque essa logica está errada. Teria como usar um 
>> OR
>> no lugar de AND?
>>
>> Obrigado
>> Leonardo
>>
>>
>>
>>
>> ______________________________**________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
>> Para consultar mensagens antigas: 
>> http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: 
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista