[英]SQL statement not working when placed in ColdFusion CFC
我有以下表連接在Microsoft SQL Server中正常運行並返回預期的結果。
SELECT d.id1, c.content_type
FROM Document2 AS d INNER JOIN
Content2 AS c ON d.content_id = c.content_id
WHERE (d.class_id = 1)
但是,當我將語句放入ColdFusion CFC時,語句將不會執行,我也無法返回任何內容。 語法是否在CFC文件中更改? Microsoft SQL語法是否與ColdFusion CFC語法不同? 或者我在這里錯過了其他什么?
這是相關功能。 如果我使用不是表連接的簡單SQL語句,我可以使用此代碼。 但是,當我插入表連接語句時,什么都不會返回。
remote array function getcontent() {
var q = new com.adobe.coldfusion.query();
q.addParam( name="searchParam", value="#searchName#" );
q.setDatasource("Document");
q.setSQL("SELECT d.id1, c.content_type FROM Document2
AS d INNER JOIN
Content2 AS c ON d.content_id = c.content_id WHERE (d.class_id = 1)");
var data = q.execute().getResult();
var result = [];
for(var i=1; i<= data.recordCount; i++) {
arrayAppend(result, {"id"=data.d.id1[i], "Type"=data.c.content_type[i]});
}
return result;
}
問題是這行代碼:
arrayAppend(result, {"id"=data.d.id1[i], "Type"=data.c.content_type[i]});
您沒有像這樣引用數據庫變量 - 表別名不是列別名的一部分。
你應該簡單地使用:
data.id1[i]
如果你真的有一個.
在列別名中,您需要使用括號表示法來引用它,如下所示:
data['d.id1'][i]
但同樣,表別名不是列別名的一部分,因此不需要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.