[firebase-br] Where "especial"

Campus campus em sinos.net
Qua Dez 27 17:24:33 -03 2006


ops, não esqueça de tirar fora o teste  "(:parametro2 is not null) and "

----- Original Message ----- 
From: "Campus" <campus em sinos.net>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, December 27, 2006 5:17 PM
Subject: Re: [firebase-br] Where "especial"


Coloca um if na montagem do SQL, se o parametro2 for nulo, deixa ele de
fora.

+ ou - assim:

SQL.Text := "select  tb1.campo1, tb1.campo2, tb1.campo3
from TABELA1 tb1"

if VariavelDoParametro2 is null then
    SQL.Text := SQL.Text + "join TABELA2 tb2 on (tb2.campo2 = tb1.campo1)"
else
    SQL.Text := SQL.Text + " join TABELA2 tb2 on ((tb2.campo2 =
tb1.campo1)and
         ( (:parametro2 is not null) and (tb2.campo3 = parametro2) ))"

SQL.Text := SQL.Text + "where tb1campo1 = :parametro1"



----- Original Message ----- 
From: "Murilo -> CPR Sistemas" <murilo em cprinformatica.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, December 27, 2006 5:51 PM
Subject: [firebase-br] Where "especial"


é possível fazer com que uma ou mais cláusulas contidas no Where ou no
Join sejam executadas apenas em certas condições?

Por exemplo:
(Ignorem o select em si, o detalhe está no Join, onde existem 2
"ligações", sendo a primeira obrigatória, mas a segunda é "opcinal", ou
seja, eu gostaria que ela fosse executada apenas se o usuário INFORMOU o
segundo parâmetro caso contrário ela é deixada de lado.

"select  tb1.campo1,
tb1.campo2,
tb1.campo3
from TABELA1 tb1
join TABELA2 tb2 on ((tb2.campo2 = tb1.campo1)and
     (tb2.campo3 = :parametro2))
where tb1campo1 = :parametro1"


Já tentei assim:
"select  tb1.campo1,
tb1.campo2,
tb1.campo3
from TABELA1 tb1
join TABELA2 tb2 on ((tb2.campo2 = tb1.campo1)and
     ( (:parametro2 is not null) and (tb2.campo3 = parametro2) ))
where tb1campo1 = :parametro1"


Mas retornou o seguinte erro:
"An error was found in the application program input parameters for the
SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Data type unknown."


______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.15.28/604 - Release Date: 26/12/2006
12:23



______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.15.28/604 - Release Date: 26/12/2006
12:23






Mais detalhes sobre a lista de discussão lista