[firebase-br] Adicionar aspas sql

Edson Marco edmafer em gmail.com
Seg Nov 28 09:45:36 -03 2011


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
 */



Mais detalhes sobre a lista de discussão lista