Описанные ранее методы получения данных запроса по имени столбца и номеру строки (variables.myquery["columnName"][rowNumber]) верны, но не удобны для получения полной строки данных запроса.
У меня Рейло 4.1. И это крутое решение. Жаль, что это нельзя сделать так, как хотелось бы, чтобы сразу получить полную строку данных, но следующий метод позволяет нам получить то, что мы хотим, через несколько обручей.
Когда вы serializeJSON(variables.myquery)
, он изменяет запрос на объект структуры cfml в формате JSON с двумя элементами: «Столбцы» и «Данные». Оба они являются массивами данных. Массив «данные» представляет собой двумерный массив для строк, а затем столбцовые данные.
Проблема в том, что теперь у нас есть непригодная для использования строка. Затем, если мы повторно сериализуем его, это будет НЕ запрос, а скорее полезная обычная структура в формате, описанном выше.
Предположим, у нас уже есть переменная запроса с именем 'variables.myquery'. Затем посмотрите на следующий код:
<cfset variables.myqueryobj = deserializeJSON(serializeJSON(variables.myquery)) />
Теперь вы получаете двумерный массив, получив это:
<cfset variables.allrowsarray = variables.myqueryobj.data />
И вы получаете один массив строк запроса, получая это:
<cfset variables.allrowsarray = variables.myqueryobj.data[1] />
ИЛИ последняя строка таким образом:
<cfset variables.allrowsarray = variables.myqueryobj.data[variables.myquery.recordCount] />
И вы можете получить значения отдельных столбцов с помощью итерации номера столбца:
<cfset variables.allrowsarray = variables.myqueryobj.data[1][1] />
Теперь это может быть медленным и, возможно, неразумным с большими результатами запроса, но, тем не менее, это классное решение.
person
user2859532
schedule
08.10.2013
<cfset x = queryGetRow(QueryName,5)>
- person ale   schedule 28.01.2012