0

我有一个重复,其中值循环通过当前数据库中的文档,这些文档包含数据库和视图名称。然后重复打开数据库并从其中查看和检索数据:

var dbOther:NotesDatabase = session.getDatabase(null, doc.getItemValueString("Database"));
if(dbOther != null){
    var lookupView:NotesView = dbOther.getView(doc.getItemValueString("ViewName"));
    var viewNav:NotesViewNavigator = lookupView.createViewNavFromCategory(key);
}       

这在所有浏览器上都可以正常工作,但是如果我在 Notes 客户端中查看 xpage,我会收到以下错误:调用方法 NotesDatabase.getView(string) null 时发生异常

我已经测试了 dbOther 变量是通过将 Server 和 FilePath 属性写入日志来设置的。我检查了它是否可以通过使用 getViews 和 getAliases 生成循环来查看视图,所有视图别名再次写入日志而没有问题。

我手动输入了视图名称,以防未从文档中正确选择值但收到相同的错误。

有没有办法可以连接到 XPiNC 中另一个数据库中的视图?我找到了一个 XSnippet,它允许您将视图数据源动态添加到您的页面,我认为这可能会解决我的问题,但想在我重新编写所有内容之前找出是否有替代解决方案!

4

1 回答 1

3

尝试其他一些获取数据库句柄的方法:

这个使用""而不是null参数来指示当前服务器:

var dbOther:NotesDatabase = session.getDatabase("", doc.getItemValueString("Database"))

这个使用database.getServer()而不是 null 参数:

var dbOther:NotesDatabase = session.getDatabase(database.getServer(), doc.getItemValueString("Database"))

这个用于sessionAsSigner访问数据库(而不是使用当前用户的凭据):

var dbOther:NotesDatabase = sessionAsSigner.getDatabase(database.getServer(), doc.getItemValueString("Database"))

您使用的是 Lotus Notes 8.5.3 客户端吗?

于 2012-08-08T17:49:50.373 回答