[firebase-br] Parâmetros nulos

"Fabrício F. Kammer" ffkammer em conchalnet.com.br
Ter Jul 18 17:58:07 -03 2006


O problema eh o meu software nao conhece o SQL no momento da 
compilacao... o sql e os parâmetros estão armazenados diretamente no 
arquivo de configuração dos relatórios, entendeu?

Em meu sistema irei abrir um arquivo externo (do report manager), 
recuperar a lista de parâmetros, exibir um forma para o usuário 
preencher os parâmetros e, depois disso, visualizar o report.

[]s

Fabrício

Magnun Oliveira escreveu:
> 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
> 
> 
> ______________________________________________
> 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

-- 
Fabrício F. Kammer
19 3866-1927
ConchalNet
Conchal/SP




Mais detalhes sobre a lista de discussão lista