查询Lotus Notes中的特定记录

时间:2013-10-28 02:12:01

标签: lotus-notes

我习惯使用关系数据库,您可以在其中定位特定记录。例如,使用下面的伪sql。

SELECT id, name, otherVar FROM students WHERE id=:studentId

但是,我不确定如何在Lotus Notes中使用其平面数据模型进行处理。我一直在谷歌搜索,但不断提出如何更新Lotus Notes本身的点击,而不是Lotus Notes内部的文档。如果拥有一些LN专业知识的人能指出我正确的方向,那将非常感激。

2 个答案:

答案 0 :(得分:6)

使用SQL语句作为类比,假设您有一个包含studentsidname列的视图otherVar。应该对列id进行排序(以升序或降序排列)。所以视图看起来像这样

╔════╦════════════╦═════════════╗
║ id ║ name       ║ otherVar    ║
╠════╬════════════╬═════════════╣
║ 1  ║ Daniel     ║ ----------  ║
║ 2  ║ Joseph     ║ ----------  ║
║ 3  ║ Michelle   ║ ----------  ║
╚════╩════════════╩═════════════╝

要查找此视图,您可以在LotusScript中编写类似的内容:

Dim session As New NotesSession 'Get current session
Dim currentDB As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim studentId As String

studentId = "<STUDENT_ID>" 'The student ID that needs to be searched
Set currentDB = session.CurrentDatabase 'Get current database
Set view = currentDB.GetView("students") 'Get the view
Set doc = view.GetDocumentByKey(studentId, True) 'Look up the view with student ID to get the student document

NotesView进行简单的Google搜索以获取更多信息。在公式语言中,您可以将其写为:

@DbLookup("Notes":"NoCache"; ""; "students"; "<STUDENT_ID>"; "<FIELD TO BE RETRIEVED>"; [FailSilent]);

但是,如果你想进行复杂的计算,公式就不如LotusScript那么灵活。

答案 1 :(得分:0)

尝试使用Domino Data Services。让Notes管理员打开数据库以进行REST服务工作,您几乎可以从任何地方获取Domino数据!见Domino Data Services manual on the web