[firebase-br] Adicionar aspas sql

Herminio E. Piram herminiopiram em gmail.com
Seg Nov 28 10:39:50 -03 2011


Grande irmãozinho!

Tentei da seguinte forma: (Não quero parecer chato sobre o fonte, só pra
facilitar a leitura)

1 - sSql := sSql || ' where campo1 = ''' || parametroEntrada;

Assim ele manda 2 aspas antes do parametro, ex: where campo1=''Teste'
obs: a ultima aspas não foi eu que adicionei

Tentei usar apenas 2 aspas antes do =, mas não deu certo, transformou o
restante
do procedimento em texto.

2 - sSql := sSql || ' where campo1 = '' || parametroEntrada;

No ibExpert, qdo digito 3 aspas ele transforma tudo em texto.
Não existe uma função semelhante ao quotedStr do Delphi?

Também tentei assim:

3 - sSql := sSql || ' where campo1 = ' || '' || parametroEntrada || '';
2 aspas - sem sucesso, fica como a primeira tentativa

4 - sSql := sSql || ' where campo1 = ' || ''' || parametroEntrada || ''';
3 aspas - Assim transformou tudo isso em texto: ''' || parametroEntrada ||
'''

5 - sSql := sSql || ' where campo1 = ' || '''' || parametroEntrada || '''';
4 aspas - Ficou com 2 aspas antes da palavra e 3 depois, ex: ''PALAVRA'''.

Está tenso o negocio, pelo jeito terei que fazer um crtl+c/crtl+v no sql e
duplica lo dentro da sp.


2011/11/28 Edson Marco <edmafer em gmail.com>

> Aeee irmãozinho!
>
> Quando você precisar criar a instrução em tempo de execução, e um
> dos parâmetros é do tipo string, para adicionar as aspas tu faz assim:
> adiciona a aspa entre aspas, entendeu? Confuso né... mas olha o exemplo:
>
> 'select '''||:CAMPO||''' from tabela';
>
> ficou meio apertado ai nesta fonte... copie no notepad e aumente o tamanho
> que tu vai conseguir visualizar melhor... mas de todo caso é assim: ' ' '
> (3 aspas sem o espaço) || parâmetro/variável || ' ' '
>
> Um grande abraço!
>
> 2011/11/28 Herminio E. Piram <herminiopiram em gmail.com>
>
> > Bom dia Pessoal.
> >
> > Tenho uma sp que preciso alterar o sql dela de acordo com o valor de
> alguns
> > parametros, para isso criei uma variável sSql varchar(3000), para
> > teste adicionei
> > um select campo1, campo2 from tabela a variável e usei o for execute
> > statement vSql do,
> > (fiz o into e suspend) funcionou, qdo alterei o sql para o que preciso
> > me deparei com um
> > problema que não soube como resolver, uma das condições do where é um
> > paramentro de entrada,
> > varchar(20) e não estou conseguindo adicionar aspas nele ao concatenar
> > com a variável.
> >
> > Debugando pelo ibExpert, qdo paro o mouse sobre o parametro de entrada
> > ele está com as aspas,
> > mas ao atribuir à variável não vai com as aspas...
> >
> > Segue como estou fazendo:
> >
> > Sem aspas
> > sSql := sSql || ' where campoVarchar= ' || parametroEntrada (assim vai
> > com uma aspas no final, exemplo: where campoVarchar=TESTE' )
> >
> > 3 aspas depois do = (com 2 aspas antes não dá, transforma todo o
> > restante da procedure em texto)
> > sSql := sSql || ' where campoVarchar= ''' || parametroEntrada (assim
> > vai com 2 aspas antes da string: where campoVarchar=''TESTE'  )
> >
> > sSql := sSql || ' where campoVarchar= ' || '' || parametroEntrada
> > (assim vai com uma aspas no final, exemplo: where campoVarchar=TESTE'
> > )
> >
> > Qual a forma correta para esta situação?
> > Isso é possível?
> >
> > Desde já meus agradecimentos.
> >
> > --
> > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> > _ _ _ _ _ _ _
> >
> > "If the doors of perception were cleansed everything
> >  would appear to man as it is, infinite." (William Blake)
> >  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> > _ _ _ _ _ _ _
> >
> > ______________________________________________
> > 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
> >
>
>
>
> --
> /*
>  * Edson Marco Ferrari Junior
>  * edmafer em edmafer.com.br
>  * http://www.edmafer.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
>



-- 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

"If the doors of perception were cleansed everything
 would appear to man as it is, infinite." (William Blake)
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _



Mais detalhes sobre a lista de discussão lista