[firebase-br] Where "especial"

Fernando Reis Guimarães fernandobhz em gmail.com
Qua Dez 27 18:25:05 -03 2006


CASO COMPLIQUE A PARADA PODE-SE FAZER UM EXECUTE BLOCK TAMBEM

Em 27/12/06, Campus <campus em sinos.net> escreveu:
>
> 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
>
>
>
> ______________________________________________
> 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
>



-- 
Atenciosamente,
Fernando Reis Guimarães.

Contatos
fernando em fernandobhz.com
http://www.fernandobhz.com
Celular 9213-3727.



Mais detalhes sobre a lista de discussão lista