[firebase-br] Alterar "linha" do SQL

Magno magnoscosta em bol.com.br
Sáb Mar 5 08:45:55 -03 2005


Caracas... monte de coisa complicada... eu uso o que vc fez mesmo..Savio...
Tenho uma SQL dentro do Query

SELECT * FROM FULANO
WHERE TAL = COISA
AND TAL = OUTRACOISA

Se quero alterar... uso o que vc faz

Query.sql[1] := 'WHERE TAL = MUDADO';

ou na outra linha

Query.sql[2] := 'AND TAL = COISANENHUMA'

Vlw...

----- Original Message ----- 
From: "eduardo" <eduardo em icontroller.com.br>
To: <lista em firebase.com.br>
Sent: Saturday, March 05, 2005 7:59 AM
Subject: Re: [firebase-br] Alterar "linha" do SQL


> Oi Sávio
>
> Eu faria desta forma:
> var Select, Par1, Par2:String;
> begin
>      Select := ' select p.codigo, p.preco, g.id_grupo'+
>                ' from tbproduto p'+
>                ' inner join tbgrupo g on(g.id_grupo = p.id_grupo)+
>                ' where p.<Campo> LIKE ''<campodebusca)>''';
>      if ... Minha Lógica
>        begin
>             Par1 := X;
>             Par2 := y;
>        end;
>      Select := StrReplace(Select, '<Campo>', Par1, [locaseInsensitive]);
>      Select := StrReplace(Select, '<CampodeBusca>', Par1, 
> [locaseInsensitive]);
>      SqlQuery.Sql.Text := Select;
> end;
>
> Dá para fazer uma rotina genérica que substitua parâmetros se vc utilizar 
> uma regra de nomenclatura. Ex
>
> Query SELECT CAMPO FROM TABELA WHERE CHAVE=@P0 AND SUBCHAVE=@P1
> Params ['1234', '69']
> function ReplaceParams(const Query:String;Pars:Array of String):String;
> var i:integer;
> begin
> Result := Query;
>        for i := High(Pars) downto 0 do
>            Result := StrReplace(Result, '@P'+IntToStr(i), Pars[i], 
> [locaseinsensitive]);
> end;
>
> Espero ter ajudado
>
> [] Eduardo
>
> savio_assuncao em ibest.com.br wrote:
>> ola, pessoal Um Companheiro , tempos atras em deu uma dica de como trocar 
>> uma linha da consulta SQL a partir de um comando enviado
>>   Por exemplo :
>>
>>   select p.codigo,
>>            p.preco
>>            g.id_grupo
>>    from tbproduto p
>>    inner join tbgrupo g on(g.id_grupo = p.id_grupo)
>>
>>    ai.. conforme o omando recebido contruo a clausula where
>>
>>    if  comando = f10
>>        coluna:=' REFERENCIA' sql.add('where p.'+Campo+'LIKE ' + 
>> quotestr(campodebusca));
>>      else
>>        coluna:=' DESCRICAO' sql.add('where p.'+Campo+'LIKE ' + 
>> quotestr(campodebusca));
>>    endif     Como estou usando um sql.add  do componente TSQLQuery do 
>> IBExpress
>>     na segunda execucao , gera uma erro, claro ficam duas clausulas where 
>> :(
>>
>>    Queria substrituir  a linha do Consulta if  comando = f10
>>        coluna:=' REFERENCIA' sql.[6]:=('where p.'+Campo+'LIKE ' + 
>> quotestr(campodebusca));
>>      else
>>        coluna:=' DESCRICAO' sql.[6]:=('where p.'+Campo+'LIKE ' + 
>> quotestr(campodebusca));
>>    endif     E possivel né ....hehe
>>
>>    [ ]'s
>>    Savio Assuncao
>>    D6 + IbExpress + FB1.0
>>
>>
>>
>> Conheça o novo iBest Acelerado e aumente a velocidade da sua navegação em 
>> até 5 vezes. O primeiro mês é gratuito. Basta acessar o endereço 
>> http://www.ibest.com.br/acelerado para se cadastrar.
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço 
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br 





Mais detalhes sobre a lista de discussão lista