【问题标题】:How do I connect an SQL database to Lotus Domino Designer?如何将 SQL 数据库连接到 Lotus Domino Designer?
【发布时间】:2012-02-23 05:49:42
【问题描述】:

我正在创建一个必须具有动态组合框的 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

【问题讨论】:

  • 请更新您的问题以指定这是笔记客户端应用程序还是基于 Web 的应用程序。

标签: sql sql-server-2005 lotus-notes lotus-domino lotusscript


【解决方案1】:

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

http://extlib.openntf.org

【讨论】:

  • 我2天前刚开始使用Lotus,我什至不知道如何实现xPages。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 我需要做些什么来确保它能够识别我的数据库吗?它总是返回某种“命名产品不存在”错误。我的凭据是正确的。
    • 你能展示一些你的代码吗?或者看看你是否可以找到使用 ODBCConnection 的 Lotusscript 代码示例 - 例如这篇文章:stackoverflow.com/questions/4923236/…
    • 用我所拥有的更新了主帖。这很简单。我不知道为什么它不会连接。
    • 我假设您的“call.con.ConnectTo”是一种类型(应该是 Call con.ConnectTo)。尝试“If con.ConnectTo(...) Then”而不是“While Not”。服务器上也设置了 ODBC(在操作系统级别的 ODBC 驱动程序管理器中),您可以使用服务器上的 ODBC 连接手动连接吗?
    • 好的,我得到了连接,现在我有了数据。如何将数据分配给组合框?另外,是否可以将 sql 中的一个值指定为组合框值,将 sql 中的另一个值指定为别名?
    【解决方案4】:

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

    【讨论】:

    • 我试过了,我得到的只是:“无法执行@db函数”
    • 听起来像是一个 ODBC 设置问题(如上文所述)。
    • +1 尽管操作要求 LotusScript 解决方案,但使用“@DBlookup”的@Formula ODBC 变体可能是填充组合框的最简单和最有效的解决方案,因为它是一个 Notes 客户端应用程序。他得到的错误只是一个 ODBC 配置错误。一个示例是将其放在组合/对话框值源中:@dblookup("ODBC"; "ConnectionName"; "userid"; "userpw"; "table"; "field"; "key" [;options]) -有关详细信息,请参阅 Notes 帮助。
    【解决方案5】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-02-10
      • 2012-05-08
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多