如何在xpages中使用@JDBCDBColumn for typ

时间:2014-11-20 16:53:27

标签: oracle jdbc xpages rdbms

使用Notes 9和扩展库的数据控件......

我想使用@JDBCDbColumn()从Oracle表中获取类型提前值。

这有可能吗?它是否与前面类型中的标准DBColumn的工作方式相同?

请注意,DBColumn正在查看一个巨大的表,但我指定了一个where子句,它应该过滤JDBCDBColumn返回的内容。

不知何故,没有任何反应。尽管如此,我需要使用Notes数据工作,但我需要使用Oracle数据。

谢谢!

更新1:我有代码......

@JdbcExecuteQuery(
    "oracle",
    "select distinct postal_code from cifadmin.postal_codes where postal_code like '"
      + getComponent("CodePostal").getValue() + "%'")

更新2:这是我现在的代码,但它没有返回任何内容:

var CodePostal = getComponent("rsSearchQuery").getValue();
if(!!CodePostal) {
    var params = [CodePostal];
    var a = @JdbcDbColumn("oracle", "postal_codes", "postal_code", "postal_code like ?", params); 
    return @Unique(a);
} else {
    return "--";
}

3 个答案:

答案 0 :(得分:1)

好的,感谢您的所有评论和一些直觉,我得到了它的工作!!!

以下是工作代码:

var sql = "SELECT DISTINCT POSTAL_CODE FROM cifadmin.POSTAL_CODES WHERE POSTAL_CODE LIKE'" +     getComponent("PostalCode").getValue() +"%' ORDER BY POSTAL_CODE";
var res = @JdbcExecuteQuery("oracle", sql);
var values = new Array();
while (res.next()) {
values.push(res.getString("POSTAL_CODE"));
}   
return values;

让它发挥作用的是我强迫'值'作为数组。没有它,它就行不通。

挑剔且敏感,XPages是!!!

感谢所有人的帮助;)

答案 1 :(得分:0)

刚刚第一次测试它:对我来说很好用,除了我没有在我的示例中使用WHERE子句和其他类型的DB。

<xp:inputText id="inputText1" styleClass="form-control">
                    <xp:typeAhead mode="partial" minChars="1" ignoreCase="true">
                        <xp:this.valueList><![CDATA[#{javascript:@JdbcDbColumn("postgres", "xpagesdemo.names", "lastname")}]]></xp:this.valueList>
                    </xp:typeAhead>
                </xp:inputText>

点击此处观看现场演示:http://www.notesx.net/postgres.nsf/typeahead.xsp

答案 2 :(得分:0)

Ben,我想你的意思是你想把通配符放到参数的末尾?不确定您的数据以及您输入的是否完全匹配?你试过了吗?

var params = [CodePostal +“%”];

另外,不确定是否需要像在sql中那样输入“cifadmin.postal_codes”?

霍华德