Ошибка запроса запросов в Coldfusion 10

Я получаю сообщение об ошибке, когда пытаюсь выполнить запрос запроса.

Таблица с именем allData не найдена в памяти. Имя написано с ошибкой или таблица не определена.

У меня есть документ excel, и я вывожу его в переменную coldfusion с именем allData, а затем делаю запрос к этой переменной. но я получаю сообщение об ошибке:

Что я делаю неправильно? Первый дамп показывает таблицу соответствующим образом.

function name="validateExcel" access="public" output="yes" returnType="void" 
hint="search for dogs">

<cfspreadsheet
 action="read"
 src="#SESSION.theExcelFile#"
 headerrow= "1"
 excludeHeaderRow = "true"
 query = "allData"
 rows = "1-25"/>


  <cfdump var = "#allData#"/>

  <cfset rotCheck = new Query(
        sql =  "SELECT * FROM allData where dogType like '%rot'",
        dbtype = "query"

  ) />

  <cfset dogResult = rotCheck.execute().getResult() />

  <cfdump 
  var = "#dogResult#" />

 </cffunction>

person ConfusedDeer    schedule 15.02.2014    source источник
comment
Мне нужно запустить, но краткий ответ - переменная запроса из электронной таблицы не входит в область Query.cfc. Либо передайте объект запроса в качестве параметра т.е. new Query(...., allData=allData) или вместо этого используйте cfquery. (В документации по Query.cfc несколько отсутствует IMO.)   -  person Leigh    schedule 16.02.2014
comment
@ Ли, ты должен был сделать это ответом (это хорошее описание проблемы).   -  person Adam Cameron    schedule 16.02.2014
comment
Помимо ответа Ли ... также убедитесь, что вы VAR свои переменные внутри функции.   -  person Adam Cameron    schedule 16.02.2014
comment
@Ли. У меня все работает с вашим ответом и предоставленной ссылкой. Пожалуйста, отправьте краткий ответ в качестве ответа, чтобы я мог принять.   -  person ConfusedDeer    schedule 17.02.2014
comment
Спасибо, парни. Сделаю.   -  person Leigh    schedule 17.02.2014


Ответы (2)


(Из комментариев...)

Мне нужно бежать, но короткий ответ - переменная запроса из электронной таблицы не входит в область действия Query.cfc. (В документации по Query.cfc несколько отсутствует IMO.) Либо передайте объект запроса в качестве параметра, например new Query(...., allData=allData), или используйте <cfquery>.

person Leigh    schedule 17.02.2014

Учитывая, что дамп работает, переменная allData существует. Тег cfquery с соответствующими атрибутами решит вашу проблему за вас.

person Dan Bracuk    schedule 15.02.2014