Re: [firebase-br] Parâmetros nulos
Magnun Oliveira
magnun_magnun em hotmail.com
Ter Jul 18 17:38:50 -03 2006
eu ainda acho q dah pra fazer no sql.
eu fiz isso. eh até meio simples. um exemplo:
coloca um checklistbox e alimenta ele com as tabelas.
coloca outro e alimenta esse com os campos das tabela selecionadas.
faz uma rotina pra gerar o inicio do sql baseado nas tabelas e campos
selecionados.
coloca um combo com operadores diversos, ex : like, not like, =, <>, >, <,
>=, <=, etc ...
coloca um edit para o valor a ser buscado
coloca um outro combo com os campos da tabela pra fazer o order by
aih vc coloca um speedbutton e no on clique vc testa os combos e adiciona
aquela sql padrao q todo mundo conhece.
and ' + cmb_Campo + ' ' cmb_Operador + ' ' + edt_VALOR '
aih a cada clique vc adiciona um filtro diferente e depois antes de executar
a SQL vc passa:
' order by ' + cmb_Ordem
agora eh soh vc pensar um pouco e adaptar a sua necessidade, ou seja joins
neh?
eu nao tenho nada pronto com joins + se eu tiver um pouco de tempo amanha
vou ver se faço.
>From: "Fabrício F. Kammer"<ffkammer em conchalnet.com.br>
>Reply-To: FireBase <lista em firebase.com.br>
>To: FireBase <lista em firebase.com.br>
>Subject: Re: [firebase-br] Parâmetros nulos
>Date: Tue, 18 Jul 2006 17:00:48 -0300
>
>Yep! a idéia é boa mesmo, mas, sem querer ser chato, não resolve muito
>meu problema... pois como eu disse, estou trabalhando nisso para um
>gerador de relatórios personalizados, onde o meu cliente irá criar os
>relatórios dentro do próprio sistema... ele deverá utilizar qq tabela do
>sistema, não posso deixá-lo preso a stored procedures
>
>[]s
>
>Fabrício
>
>Kléber Caneva escreveu:
> > Fiz um teste simples e funcionou:
> >
> > CREATE PROCEDURE SP_TESTE (
> > KPRODUTO INTEGER)
> > RETURNS (
> > CODIGO CHAR(12),
> > NOME VARCHAR(80))
> > AS
> > begin
> > For
> > Select CODIGO, NOME
> > From PRODUTO
> > Where (:KPRODUTO is null) or (KPRODUTO = :KPRODUTO)
> > Into :CODIGO, :NOME
> > do
> > suspend;
> > end^
> >
> > Se eu chamo
> > Select * From SP_TESTE( 155 )
> > ele me retorna um unico produto, se eu chamo
> > Select * From SP_TESTE( null )
> > ele me retorna todos os produto..
> >
> > []´s
> >
> > Kléber Caneva
> >
> >
> >
> >
> > ----- Original Message -----
> > From: ""Fabrício F. Kammer"" <ffkammer em conchalnet.com.br>
> > To: "FireBase" <lista em firebase.com.br>
> > Sent: Tuesday, July 18, 2006 3:08 PM
> > Subject: Re: [firebase-br] Parâmetros nulos
> >
> >
> > Boa tarde Kléber,
> >
> > O problema não é a ordem dos parâmetros, mas sim que o FB não permite a
> > comparação:
> >
> > :PARAM IS NULL
> >
> > []s
> >
> > Fabrício
> >
> > Kléber Caneva escreveu:
> >> Amigo, acredito que como você está usando o OR se você inverter a
> >> condição
> >> ele irá funcionar...
> >>
> >> WHERE (:PARAM IS NULL) OR (CAMPO=:PARAM)
> >>
> >> Isso se justifica, pois o interpretador ao considerar a 1º condição
>como
> >> verdadeira, ele não irá validar a 2º, pois o Where já satisfaz a
> >> condição...
> >>
> >> []´s
> >>
> >> Kléber Caneva
> >>
> >> ----- Original Message -----
> >> From: ""Fabrício F. Kammer"" <ffkammer em conchalnet.com.br>
> >> To: <lista em firebase.com.br>
> >> Sent: Tuesday, July 18, 2006 9:38 AM
> >> Subject: [firebase-br] Parâmetros nulos
> >>
> >>
> >> Salve Galera!
> >>
> >> Alguém sabe alguma forma eficiente para testar se um parâmetro é nulo?
> >> Tenho muitas consultas com parâmetros opcionais e preciso que o select
> >> traga todos os registros caso o parâmetro não sejam informados.
> >>
> >> Em Oracle isso é o possível:
> >>
> >> WHERE CAMPO=:PARAM OR :PARAM IS NULL
> >>
> >> Já no FB não é possível esta solução. Testei o seguinte:
> >>
> >> WHERE CAMPO=:PARAM OR 0=:PARAM
> >>
> >> Porém dessa forma eu terei que passar um 0 (zero) na momento da
>execução
> >> da consulta, caso isso seja esquecido a consulta não retornará nenhum
> >> registro.
> >>
> >> []s
> >>
> >
>
>--
>Fabrício F. Kammer
>19 3866-1927
>ConchalNet
>Conchal/SP
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o endereço
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
_________________________________________________________________
MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br
Mais detalhes sobre a lista de discussão lista