2015-01-16 5 views
1

Как я могу напечатать переменную SQL в Coldfusion?Печать SQL-переменной в ColdFusion

<cfquery...> 
    ... 
    @var1='whatever' 
</cfquery> 

<cfoutput> 
    #@var1# 
</cfoutput> 

Синтаксис, как это всегда бросает ошибку из-за @ символа.

+1

Возможно, хранимыйпродукт может помочь. –

+0

Как бы сохранить helpproc? –

+0

В отличие от cfquery, хранимые procs поддерживают возвращаемые выходные переменные и несколько наборов результатов. – Leigh

ответ

6

Вы не можете. <cfquery> отправляет строку SQL в БД и ожидает, что запись будет восстановлена. Это единственное, что <cfquery> предоставляет код вызова. Он никоим образом не анализирует (или не понимает каким-либо образом) оператор SQL ... он просто отправляет его в БД. CF не знает, что там есть переменная SQL.

Что вам нужно сделать, это что-то вроде этого (непроверенные):

<cfquery name="blah"> 
    ... 
    @var1='whatever' 

    SELECT @var AS someName 
</cfquery> 
<cfoutput>#blah.someName#</cfoutput> 

Действовать таким образом будет означать набор записей, который возвращается (который всегда последнийfirst один в SQL оператор) будет тем, у кого есть переменная.

+0

Спасибо, но переменная, которую я хочу распечатать, состоит из нескольких значений изнутри цикла. Кроме того, я не могу сделать выбор в этом var, потому что это «неопределенный» ... – Phil

+1

Shrug. Возможно, вы захотите посмотреть @ с помощью proc вместо встроенного SQL, я думаю. Итог: вы не можете получить доступ к переменной var в строке SQL '', переданной в БД. '' только возвращает наборы записей. –

+0

ok Спасибо, я дам ему попробовать – Phil