[firebase-br] Duvida sobre Procedure

Marco Antonio Abreu mabreu em itquality.com.br
Qui Nov 6 17:08:34 -03 2008


Eu criei uma função que faz isso para mim. Eu crio uma variavel Boolean
e inicializo ela com False. Aí é só concatenar usando a função.

...
w := False;
sql := 'SELECT * FROM tabela ';

if cond1 then
   sql := sql + addWhereAnd( w ) + ' campo = x ';

if cond2 then
   sql := sql + addWhereAnd( w ) + ' campo2 = y ';

...

function AddWhereAnd(var bWhere: Boolean ): String;
begin
  If bWhere Then
     Result := ' AND '
  Else Begin
     Result := ' WHERE ';
     bWhere := True;
  End;
end;

[]'s,

Marco Antonio Abreu
IT Quality Systems
mabreu em itquality.com.br
http://www.itquality.com.br



Daniel Sonda wrote:
> Wilson,
>
> Quando vc usa o join é necessário especificar o critério de comparação
> no ON (tabelaA.campo = tabelaB.campo).
> A stored procedure selecionável funciona como uma tabela, mas na
> verdade vc já faz o "join" ao passar o parametro pra ela.
> Então o (1 = 1) seria só pra atender a regra de sintaxe, retornando
> sempre True na comparação.
>
> Não sei dá pra fazer diferente, mas o fato é que funciona...  :-)
>
> Att.
> Daniel Sonda
> www.h2jsolucoes.com.br
>
>
>
> Wilson Mota - GMail escreveu:
>> Muito Obrigado Daniel, funcionou perfeitamento, onde você achou essa
>> solução amigo?
>> Qual a lógica para "(1 = 1)" ?
>> Valeu mesmo.
>>
>> Obrigado.
>>
>> Wilson
>>
>>
>>
>> ----- Original Message ----- From: "Daniel Sonda" <daniel em mhnet.com.br>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Wednesday, November 05, 2008 5:26 PM
>> Subject: Re: [firebase-br] Duvida sobre Procedure
>>
>>
>> Creio que você possa fazer assim:
>>
>> select
>>  c.data_emissao,
>>  c.valor_documento,
>>  CONTAS_PAGAR_PROC_01.vValor_Baixado,
>>  CONTAS_PAGAR_PROC_01.vData_Baixa
>>> From Contas_Pagar
>> left outer join CONTAS_PAGAR_PROC_01(c.ID_CLIENTE) on (1 = 1)
>> where id_cliente = 1
>>
>> Att.
>> Daniel Sonda
>> www.h2jsolucoes.com.br
>>
>>
>> ______________________________________________
>> 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
>>
>> __________ Information from ESET NOD32 Antivirus, version of virus
>> signature database 3590 (20081106) __________
>>
>> The message was checked by ESET NOD32 Antivirus.
>>
>> http://www.eset.com
>>
>>
>>
>
> ______________________________________________
> 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