атрибут имени cfquery, необязательно? - PullRequest
3 голосов
/ 27 июля 2011

Является ли атрибут имени cfquery необязательным?Док сказал, что это необходимо, но мой код работает нормально даже без него.Есть ли значение по умолчанию, если оно не определено?и если да, я должен локально изменить его или безопасно его игнорировать?

Thx

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Я думаю, вы можете спокойно пропустить name. По-видимому, не добавляется значение по умолчанию name к переменным или локальным областям.

Однако я заметил кое-что странное под CF9. Если вы не используете локальную область действия result, ключ cfquery.executiontime будет добавлен в область действия variables. Это при отключенной отладке (если я что-то пропустил).

Results:
Before  Variables = 1 Local = 1
After   Variables = 2 Local = 1   (result NOT local scoped)


<cffunction name="myFunction" output="true">
    <b>Before</b>
    Variables = #structCount(variables)#
    Local = #structCount(local)#<br />

    <cfquery datasource="MyDatasource">
        SELECT getDate() AS TestDate
    </cfquery>

    <b>After</b>
    Variables = #structCount(variables)#
    Local = #structCount(local)#<br />
</cffunction>
1 голос
/ 27 июля 2011

Атрибут name является обязательным, но я только что проверил его, и он не выдает ошибку, если атрибут name отсутствует ... как очень интересно. Хотя без атрибута name - как вы собираетесь получить результат?

Какой интересный вопрос.

UPDATE

Просто провел быстрый тест и немного погуглил:

<cfquery  datasource="#dsn#" result="qresult">
select some_stuff from that_table limit a_bunch
</cfquery>

<cfdump var="#qresult#" />

Вывод атрибута результата ясно показывает, что запрос был выполнен и получил набор результатов - хотя, похоже, нет доступа к нему. Google и документы не помогли с настройками по умолчанию или областью действия ... может быть, пинг этих парней: http://www.bennadel.com/ - Я столкнулся с большим количеством "экспериментов" на их сайте.

Теперь в документах говорится, что атрибут name является обязательным, но, думаю, я вижу ситуации, когда он может не понадобиться - очевидно, память не используется переменной name, которой там нет, но как насчет результирующего набора? так что я предполагаю, что если вы выполните какой-либо запрос, когда вам на самом деле не нужна информация из него [что-либо, кроме выбора?], вы можете получить всю необходимую информацию, используя атрибут результата, и МОЖЕТ сэкономить немного памяти и время выполнения?

разве это не забавная мысль?

-sean

...