[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