[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