sta*_*at8 3 sql database sql-server 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)
Run Code Online (Sandbox Code Playgroud)
但是,当我将语句放入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;
}
Run Code Online (Sandbox Code Playgroud)
问题是这行代码:
arrayAppend(result, {"id"=data.d.id1[i], "Type"=data.c.content_type[i]});
Run Code Online (Sandbox Code Playgroud)
您没有像这样引用数据库变量 - 表别名不是列别名的一部分.
你应该简单地使用:
data.id1[i]
Run Code Online (Sandbox Code Playgroud)
如果你确实.在列别名中有一个,那么你需要使用括号表示法来引用它,如下所示:
data['d.id1'][i]
Run Code Online (Sandbox Code Playgroud)
但同样,表别名不是列别名的一部分,因此不需要.
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |