使用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 "--";
}
答案 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>
答案 2 :(得分:0)
Ben,我想你的意思是你想把通配符放到参数的末尾?不确定您的数据以及您输入的是否完全匹配?你试过了吗?
var params = [CodePostal +“%”];
另外,不确定是否需要像在sql中那样输入“cifadmin.postal_codes”?
霍华德