簡體   English   中英

放置在ColdFusion CFC中時,SQL語句不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM