[firebase-br] Dúvida para filtrar registros

Junior Monteiro junior.lucas.nany em gmail.com
Qua Fev 26 15:05:13 -03 2014


Boa tarde eu faco assim montando where run time na aplicacao exemplo se
item índex 0 então minha var slqwhere recebe and situação  =A e assim por
diante ai fecho fecho a query concateno slqpadra que também salvo na
abertura da query  ai fica
CDs.close
Query.SQL.text = sqlpadrap + sqlwhere
Cds.open

Nao sei se fiquei claro ..
Att
Em 26/02/2014 13:58, "Rafael Voltani" <rafael.volts em turbocode.com.br>
escreveu:

> Boa tarde lista.
> O item pode estar em 3 status (aberto, pago ou cancelado), que verifico da
> seguinte forma:
>   - se PAGO = 'N'  e CANCELADO = 'N entao STATUS = 'Aberto'  - se PAGO =
> 'S' e CANCELADO = 'N' entao STATUS = 'Pago'  - se CANCELADO = 'S' entao
> STATUS = 'Cancelado'
> Por não conter o campo STATUS na tabela, tenho de verificar dessa forma.
> Para exibir no grid utilizei CASE, funciona perfeitamente.
> Me pediram para trocar o modo de filtrar. Ao invés de usar CheckBox e
> exibir mais os itens selecionados, utilizar um ComboBox, para exibir apenas
> o selecionado. Tudo por questão de BIOS... hehehe...
> No ComboBox terá as opções: - Todos / Abertos / Pagos / Cancelados
> Para o usuário escolher apenas uma delas.
> Gostaria de uma opinião de vocês de qual melhor forma para resolver isso.
> Criar o campo STATUS na tabela e TRIGGER que faça a verificação acima e
> atualizar o campo??
>
> Como montar no WHERE essa verificação ??
> tentei usar case, mas não foi...
>   AND CASE        WHEN ( :FILTRO = 'A' ) THEN ( (R.CANCELADO_SN = 'N' )
> AND (  R.PAGA_SN = 'N' ) )        WHEN ( :FILTRO = 'P' ) THEN ( (
> R.CANCELADO_SN = 'N' ) AND R.PAGA_SN = 'S' )        WHEN ( :FILTRO = 'C' )
> THEN ( R.CANCELADO_SN = 'S' )      END
> Espero ter conseguido expor a duvida.
> Grato pela atenção.
> Rafael Voltani                           Analista Desenvolvedor de
> SoftwaresDelphi + Firebird
>               Se for encaminhar esta mensagem para outros, favor retirar o
> meu e-mail do cabeçalho e não esqueça de colocar TODOS os DESTINATÁRIOS em
> CÓPIA OCULTA (cco). Mantenha a privacidade dos e-mails e combata os vírus.
> ______________________________________________
> 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