ColdFusion Query - Получить индекс столбца по имени столбца - PullRequest
0 голосов
/ 21 марта 2011

У меня есть имя столбца и, ради SpreadsheetSetCellFormula, я хочу получить индекс этого столбца из его имени. Это важно для расширяемости, поскольку столбцы могут быть добавлены или удалены в будущем.

Когда я использую queryName.ColumnList, ColdFusion автоматически алфавитирует список. Однако передача его в SpreadsheetAddRows приводит к сбросу столбцов в исходном порядке. Как я могу получить индекс столбца по его имени?

Ответы [ 3 ]

4 голосов
/ 22 марта 2011
<!--- get the column list, in the original order, as a coldfusion compatible array --->
<cfset variables.columnArray = createObject("java","java.util.Vector").init(
   createObject("java","java.util.Arrays").asList(
      query.getColumnList()
   )
)/>
<!--- get the index of the column. note that this is case sensitive. --->
<cfset variables.myColumnIndex = variables.columnArray.indexOf("MY_COLUMN")/>

Зацикливание не требуется.

2 голосов
/ 05 августа 2011

Это не дает прямого ответа на ваш вопрос, однако это может быть ОЧЕНЬ полезно в вашей ситуации (я использовал его в аналогичной ситуации)

Это взято из: http://existdissolve.com/2010/11/quick-coldfusion-goodness/

columns = arrayToList(myquery.getMeta().getcolumnlabels())

дает вам список столбцов в их первоначальном порядке с их исходной чувствительностью к регистру (не все заглавные буквы)

1 голос
/ 22 марта 2011

Вы можете использовать функцию getMetaData(), о которой вы можете прочитать здесь . Эта функция будет возвращать массив столбцов в правильном порядке, включая некоторую другую информацию. Вы бы использовали его следующим образом:

getMetaData(queryName)
...