2014-09-03 2 views
2

Это похоже на простую вещь, но мне не очень повезло найти то, что я ищу. У меня есть запрос, который возвращает один Id, который я хочу сохранить как переменную. Я смотрю, есть ли способ сделать это без использования тега <cfoutput>, так как я думаю, похоже, что я ничего не выводил.Сохранить результат одного запроса как переменную

//declare variable 
<cfset documentType = 0> 

<cfquery datasource="mssql" name="GetDocType"> 
    Select Id 
    From DocTypes 
    Where Description = 'MyType' 
</cfquery> 

Я хочу сохранить результат этого запроса в переменной documentType. Опять же, я знаю, что это кажется простым, но пока я не видел примеров, которые действительно привели меня в правильном направлении. (Отказ от ответственности, я разработчик .NET, которому в течение многих лет был предоставлен мой первый проект ColdFusion - так что это может быть действительно действительно базовым!)

ответ

4

Это похоже на работу, но я не уверен, что это «Лучшая практика».

<cfset documentType = GetDocType.Id> 

Так как я знаю, что буду иметь только одну строку, я полагал, что я мог бы просто сослаться на столбец, который я хочу без необходимости делать какие-либо зацикливание.

Если у кого-то есть другие идеи или лучшие способы, то дайте мне знать!

+1

вот как бы я это сделал, не требуется cfoutput. –

+2

Все в порядке. Вот как это можно сделать. Тем не менее, * наилучшая практика * заключается в том, чтобы не вызывать ваш запрос «GetDocType». 'GetDocType' звучит как функция, а не переменная ;-) –

+0

@AdamCameron - ха-ха, достаточно справедливо :) Спасибо за подтверждение моего метода! – Tommy

1

Вы хотели бы, чтобы убедиться, что .RecordCount больше 0 и следующее:

<cfset documentType = GetDocType.Id[1]> 

1 является номер записи; Я считаю, что, когда вы не зацикливаете, вы получаете доступ к определенной строке в наборе записей.

+2

Не нужно. Если вы не укажете номер строки, по умолчанию она будет первой. Если запрос вернется с нулевыми строками, переменная будет просто пустой. – ale

Смежные вопросы