Методы, ранее описанные для получения данных запроса по имени столбца и номеру строки (variables.myquery ["columnName"] [rowNumber]), являются правильными, но не удобны для получения полной строки данных запроса.
Я использую Railo 4.1. И это классное решение. Жаль, что это нельзя сделать так, как мы бы хотели, чтобы сразу получить полный ряд данных, но следующий метод позволяет нам получить то, что мы хотим, через несколько обручей.
Когда вы serializeJSON(variables.myquery)
, он изменяет запрос на объект структуры cfml в формате JSON с двумя элементами: «Столбцы» и «Данные». Оба из них являются массивами данных. Массив «data» - это двумерный массив для строк, а затем столбцовых данных.
Проблема в том, что теперь у нас есть неиспользуемая строка. Затем, если мы повторно сериализуем его, это НЕ запрос, а скорее используемая регулярная структура в формате, описанном выше.
Предположим, у нас уже есть переменная запроса с именем '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] />
Теперь это может быть медленно и, возможно, неразумно с большими результатами запросов, но, тем не менее, это крутое решение.