[firebase-br] Dúvida para filtrar registros
Alysson Gonçalves de Azevedo
agalysson em gmail.com
Qua Fev 26 15:56:20 -03 2014
Eu faria os ifs na aplicação ao invés de mandar o servidor resolver isso.
sql := 'blablabla';
if (checkbox.text == 'aberto')
sql := sql + "where (R.CANCELADO_SN = 'N' ) AND ( R.PAGA_SN = 'N' )"
else if (checkbox.text == 'pago')
sql := sql + "where (R.CANCELADO_SN = 'N' ) AND ( R.PAGA_SN = 'S' )"
else if (checkbox.text == 'cancelado')
sql := sql + "where (R.CANCELADO_SN = 's' )"
com isso, o select final fica bem mais simples no final, e economiza
processamento no serviço.
Alysson Gonçalves de Azevedo
"Anarcho-syndicalism is a way of preserving freedom." - Monty Python
Em 26 de fevereiro de 2014 15:05, Junior Monteiro <
junior.lucas.nany em gmail.com> escreveu:
> 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
> >
> ______________________________________________
> 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