4

我正在创建一个必须具有动态组合框的 Lotus Notes 应用程序。组合框的选择需要通过从 SQL 数据库中进行选择来检索。

我是 Lotus Notes / Domino 的新手,我很想知道如何连接我的 SQL 数据库以在 domino 设计器中使用。谢谢。

编辑:这是客户端,而不是网络

Sub  Initialize

    On Error GoTo e
    Dim pw As String,user As String,odbc As String
    Dim i As Integer
    Dim conn As ODBCConnection,query As ODBCQuery,rs As ODBCResultSet
    Dim db As NotesDatabase
    Dim session As NotesSession
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim newDoc As NotesDocument
    Set session = New NotesSession  
    Set db = session.CurrentDatabase
    Set view = db.GetView("Reports")
    Set doc = view.GetFirstDocument 
    Set conn = New ODBCConnection
    Set query = New ODBCQuery
    Set rs = New ODBCResultSet
    Set query.Connection = conn 
    Set rs.Query = query

    odbc =  "server"  
    user =  "user" 
    pw =  "pass"
    Call conn.ConnectTo( odbc , user , pw ) 
        i = 0
        query.SQL =  "SELECT * FROM table" 
        rs.Execute 
        rs.FirstRow
        Do  While  Not rs.IsEndOfData
            i = i + 1
            rs.NextRow
        Loop
    conn.Disconnect
    Exit  Sub 
e : 
    MessageBox "Error " & Err & " line " & Erl & ": " & _
    Error        
    Exit Sub

End  Sub
4

5 回答 5

4

这些问题被标记为 Lotusscript,所以我假设这是 Lotusscript 相关的(而不是 XPages 相关的)。

查看 Domino Designer 帮助数据库中的 ODBCConnection、ODBCQuery 和 ODBCResultSet Lotusscript 类。

于 2012-01-31T19:41:50.180 回答
4

如果您无法使用任何 XPages 组件,您可以在组合框的“使用公式进行选择”部分尝试使用@DBLookup的 ODBC 变体。

于 2012-01-31T19:54:08.630 回答
2

由于 while/wend,您添加到问题中的代码将导致无限循环

根据下拉框选项的更改频率,您还可以创建一个连接到 SQL 服务器的计划代理。我经常为我自己的一些内部应用程序这样做,因为如果返回的值始终相同,它会减少到 SQL 服务器的不必要流量。

您的计划代理需要通过添加UseLSX "*lsxlc"到 Lotusscript 代理的选项部分来使用 LSXLC 扩展。

LSXLC 有很多选项超出了这个问题的范围,所以我建议查看 Domino Designer 帮助文件并搜索 lsxlc。帮助文件中有很多示例。

于 2012-02-02T14:48:36.317 回答
1

看看 OpenNTF 上的 extlib。它有一个 XPages 组件,允许您进行连接以进行 SQL 调用。

http://extlib.openntf.org

于 2012-01-31T14:49:22.697 回答
1

如果您使用的是 xpages 应用程序,则可以使用托管 bean 或静态 java 方法来获取所需的数据并将其绑定到组合框控件的选择值。

于 2012-01-31T17:23:01.463 回答