2013-05-08 15 views
2

我發現valuelist()功能不喜歡動態命名查詢:的ColdFusion值列表動態命名的查詢

<cfscript> 
variables.nNumber = 1; 
request.qDirectories = new query(); 
request.qDirectories.setDBType('query'); 
request.qDirectories.setAttributes(qDirectories=request.qAllDirectories); 
request.qDirectories.setSQL("SELECT id, name, abbr, multiproperties, isPublished, 
          isArchived, dateAdded, lastModified, lastModifiedBy, 
          prefix, lstJournalCodes FROM qDirectories"); 
request["qDirectories#variables.nNumber#"] = request.qDirectories.execute().getResult(); 
writeDump(valueList(request["qDirectories#variables.nNumber#"].id)); 
</cfscript> 

在發現這一點,我想arrayToList()會有所幫助。它確實有幫助,但即使有多行,它也只會返回一個具有一個值的數組。

有沒有辦法從動態命名查詢中的特定列中獲取所有值?

回答

7

將動態查詢複製/引用到更簡單的變量名不起作用嗎?如:

tempQry= request["qDirectories#variables.nNumber#"]; 

valueList(tempQry.id); 
+0

此答案正常。幾年前,我遇到了類似的問題,並且找到了解決方法。希望我想在當時複製查詢。 – 2013-05-08 12:58:24

+0

可以應用相同的原則來嘗試對結構數組中的特定鍵執行IsDefined() – 2013-05-08 13:02:34

+0

完美的解決方案,完全忽略將查詢複製到非動態的東西。 – Jarede 2013-05-08 13:33:53