[firebase-br] Adicionar aspas sql

Edson Marco edmafer em gmail.com
Seg Nov 28 11:05:58 -03 2011


Hum... certo... como o seu parâmetro é no final da string... você deve ter
a ' (aspa) que fecha a string.

Então... finalize com 4 aspas, exemplo: sSql := sSql || ' where campo1 =
''' || parametroEntrada||''''; (tem 4 no final)

2011/11/28 Herminio E. Piram <herminiopiram em gmail.com>

> 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)
>  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _ _ _ _ _
> ______________________________________________
> 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
 */



Mais detalhes sobre a lista de discussão lista