2012-01-31 93 views
4

我正在創建一個必須具有動態組合框的Lotus Notes應用程序。組合框的選擇需要通過從SQL數據庫中選擇來檢索。如何將SQL數據庫連接到Lotus Domino Designer?

我是Lotus Notes/Domino的新手,我很想知道如何連接我的SQL數據庫以用於多米諾骨牌設計器。謝謝。

編輯:這是客戶端,而不是網絡

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 
+0

請更新您的問題以指定這是註釋客戶端應用程序還是基於Web的應用程序。 – 2012-01-31 16:09:02

+0

已更新。這是一個客戶端應用程序 – 2012-02-01 19:24:10

回答

4

問題標有Lotusscript,所以我認爲這是Lotusscript相關(而不是XPages相關)。

查看Domino Designer幫助數據庫中的ODBCConnection,ODBCQuery和ODBCResultSet Lotusscript類。

+0

有什麼我必須做,以確保它能識別我的數據庫?它總是帶有某種「命名的產品不存在」的錯誤。 我的憑據是正確的。 – 2012-02-01 20:48:13

+0

你能展示一些你的代碼嗎?或者,看看你是否可以使用ODBCConnection找到Lotusscript代碼示例 - 比如這篇文章:http://stackoverflow.com/questions/4923236/lotuscript-some-questions-about-connecting-to-a-sql-db – 2012-02-01 21:17:49

+0

已更新的主要帖子與我有什麼。這非常簡單。我不知道爲什麼它不會連接。 – 2012-02-02 14:14:36

1

看一看上OpenNTF EXTLIB。它有一個XPages組件,允許您連接到SQL調用。

http://extlib.openntf.org

+0

我剛剛在2天前開始使用Lotus,我甚至不知道如何實現xPages。 – 2012-02-01 19:29:27

1

,如果您使用的是XPage應用程序,你可以使用託管bean或靜態Java方法來得到你想要的數據並將其綁定到組合框控件的選擇值。

4

如果您無法使用任何XPage組件,則可以在組合框的「使用公式的選擇部分」中嘗試ODBC變體@DBLookup

+0

我試過了,我得到的結果是:「<數據訪問應用程序層>不能執行@db函數」 – 2012-02-01 19:23:39

+0

聽起來像是ODBC設置問題(如Per所述)。 – 2012-02-02 22:19:54

+0

+1雖然op要求使用LotusScript解決方案,但使用@Formula ODBC變體'@DBlookup'可能是最容易且最有效的組合框填充方法,因爲它是Notes客戶端應用程序。他得到的錯誤只是一個ODBC配置錯誤。一個例子是把它放在組合/對話框值的源代碼中:@dblookup(「ODBC」;「ConnectionName」;「userid」;「userpw」;「table」;「field」;「key」[; options]) - 有關詳細信息,請參閱Notes幫助。 – andora 2014-07-24 09:19:46

2

您已經添加到了問題的代碼將導致無限循環,由於同時/蜿蜒

根據爲下拉框的選擇如何經常更改你也可以創建計劃的代理,爲連接SQL服務器。我爲我自己的一些內部應用程序做了很多工作,因爲如果返回的值始終相同,它會減少對SQL服務器的不必要流量。

您的預定代理將需要使用LSXLC擴展,方法是將UseLSX "*lsxlc"添加到Lotusscript代理的選項部分。

LSXLC有很多選項超出了這個問題的範圍,因此我建議您查看Domino Designer幫助文件並搜索lsxlc。幫助文件中有很多示例。