Проверьте результаты запроса, если данные не возвращены - PullRequest
2 голосов
/ 17 июня 2011

У меня есть запрос, по которому я звоню, чтобы обновить почтовый сервис.В большинстве случаев он будет содержать данные, но при тестировании я сталкивался с ситуацией, когда он не возвращал никаких данных, потому что не было данных для возврата.В случае отсутствия данных он возвращает ошибку «Переменная EDITEDACCTS не определена».

Я попытался обернуть запрос в <cftry>, но он не «потерпел неудачу» сам по себе, поэтому он не отключает<cfcatch>.Я также попытался определить переменную

var EditedAccts = QueryNew("")

, а также просто попробовать

<cfif NOT isDefined(#EditedAccts#)>

, и она всегда возвращает "Переменная EDITEDACCTS isundefined ".
Мне нужно готовое решение для производства, и я надеюсь, что где-нибудь здесь на SO, может помочь мне.

Заранее благодарим за помощь.

Ответы [ 2 ]

3 голосов
/ 17 июня 2011

Я только что нашел ответ.Вы устанавливаете параметр «result» в вызове запроса, а затем можете проверить возвращаемое поле recordcount.

<cfquery name="EditedAccts" datasource="mydatasource" result="queryResult">
    ...query goes here...
</cfquery>

При использовании параметра «result» вы получаете структуру, возвращаемую с использованием sql, кэшированный параметр, время выполнения и количество записей.Теперь я могу проверить количество записей и перейти оттуда.

Надеюсь, это поможет кому-то в будущем.

0 голосов
/ 15 апреля 2016

Я попытался использовать result = "queryResult", но когда я попытался сослаться на имя запроса, я получил что-то вроде этой ошибки - "Значение атрибута запроса, который в данный момент является EditedAccts, недопустимо".Вместо этого я использовал что-то вроде IsDefined ("# EditedAccts #") - в том числе значение в кавычках помогло мне.Я только новичок в ColdFusion, но быстро узнаю, что значения в кавычках полностью отличаются от значений не в кавычках с точки зрения того, как функция будет интерпретировать параметр.

...