Parametro em Consulta SQL
24/11/2005
0
Tenho a seguinte instrução SQL
QUERY1.SQL.ADD(´SELECT * FROM CONTASPAGAR WHERE VENCIMENTO BETWEEN :VInicio and :VFim´);
Tenho a interface para que o usuário informe o período (data inicial e a data final) desejado.
Quando o usuário informa a data inicial e final, atribuo os dados informados em:
QUERY1.PARMS[0].asDateTime := //Data inicial informada pelo usuário
QUERY1.PARMS[1].asDateTime := //Data final informada pelo usuário
Até aqui tudo certo. Funciona beleza.
[b:a98a4ad413]Minha dúvida/problema[/b:a98a4ad413]:
Quando o usuário quer tirar um relatório com todas as contas a pagar, independentemente do vcto, ou seja, não quer especificar um período. Que valor eu atribuo ao params 0 e 1?
Obrigado.
QUERY1.SQL.ADD(´SELECT * FROM CONTASPAGAR WHERE VENCIMENTO BETWEEN :VInicio and :VFim´);
Tenho a interface para que o usuário informe o período (data inicial e a data final) desejado.
Quando o usuário informa a data inicial e final, atribuo os dados informados em:
QUERY1.PARMS[0].asDateTime := //Data inicial informada pelo usuário
QUERY1.PARMS[1].asDateTime := //Data final informada pelo usuário
Até aqui tudo certo. Funciona beleza.
[b:a98a4ad413]Minha dúvida/problema[/b:a98a4ad413]:
Quando o usuário quer tirar um relatório com todas as contas a pagar, independentemente do vcto, ou seja, não quer especificar um período. Que valor eu atribuo ao params 0 e 1?
Obrigado.
Armindo
Curtir tópico
+ 0
Responder
Posts
25/11/2005
Marcio.theis
Para isto absta vc efetuar uma validação antes....
Ou, outra forma seria vc adicionar um CheckBox antes da seleção do período, ficando assim:
CheckBoxDtVencimento (ao lado) DateTimePickerDtInicio (e ao lado) DateTimePickerDtFim, onde que depois ficaria:
QUERY1.SQL.ADD(´SELECT * FROM CONTASPAGAR´); Você somente valida se a //Data inicial informada pelo usuário esta informada e a //Data final informada pelo usuário também não está vazio, senão você passa mais intruções SQL.... QUERY1.SQL.ADD(´WHERE VENCIMENTO BETWEEN :VInicio and :VFim´); QUERY1.PARMS[0].asDateTime := //Data inicial informada pelo usuário QUERY1.PARMS[1].asDateTime := //Data final informada pelo usuário
Ou, outra forma seria vc adicionar um CheckBox antes da seleção do período, ficando assim:
CheckBoxDtVencimento (ao lado) DateTimePickerDtInicio (e ao lado) DateTimePickerDtFim, onde que depois ficaria:
QUERY1.SQL.ADD(´SELECT * FROM CONTASPAGAR´); if CheckBoxDtVencimento.Checked then begin QUERY1.SQL.ADD(´WHERE VENCIMENTO BETWEEN :VInicio and :VFim´); QUERY1.PARMS[0].asDateTime := //Data inicial informada pelo usuário QUERY1.PARMS[1].asDateTime := //Data final informada pelo usuário end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)