[firebase-br] Alterar "linha" do SQL

eduardo eduardo em icontroller.com.br
Sáb Mar 5 13:20:02 -03 2005


Se você considerar que o objetivo é evitar ter que ficar escrevendo a 
mesma coisa cada vez que precisamos fazer substituições deste tipo,
a coisa fica bem simples.

Magno wrote:
> 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 
> 
> 
> 
> ______________________________________________
> 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