技术开发 频道

Domino与关系数据库的互操作

    【IT168 技术文章】

    一、Lotus Domino与关系数据库的互操作

    在Lotus Domino R5中提供了三个Lotus Notes扩展类:ODBCConnection(ODBC连接)、ODBCQuery(ODBC查询)以及ODBCResultSet(ODBC结果集)。应用这三个类并辅以Lotus Script语言就能实现与关系数据库的互操作问题。

    具体解决方法如下:

    第1步:在控制面板→32位ODBC数据源中建立用户数据源Test;

    第2步:在Domino R5中新建一个数据库Try,并建立一个空白表单Con-nection,此表单没有任何内容,然后在表单上创建一个“操作”,起名为“Read”;

    第3步:在“Read”操作的编程窗口中选择编程语言为Lotus Script;

    第4步:在编程窗口的对象窗口中点击“Option”事件,并写入如下脚本:

    Uselsx " lsxodbc" // 使用Lotus Script 扩展ODBC类

    第5步:选中“Declare”事件,在其中写入:

    Dim session As NotesSession

    Dim db As NotesDataBase

    Dim doc As NotesDocument

    Dim qry As ODBCQuery

    Dim result As ODBCResultSet

    Dim con As ODBCConnection

    第6步:选中“Click”事件,在其中写入:

    Sub Click(Source As Button)

    Set New Value

    Set session=New NotesSession

    Set con=New ODBCConnection

    Set qry=New ODBCQuery

    Set result=New ODBCResultSet

    Get Current Database

    Set db=session.CurrentDataBase

    Set doc=New NotesDocument(db)

    doc.form="connection"

    Call con.Disconnect()

    If con.ConnectTo("test") Then

    Set qry.connection=con

    qry.SQL="SELECT FROM Table1"

    Set result.Query=qry

    Call result.Execute()

    columns=result.Columns

    Do

    Call result.NextRow()

    For i=1 To result.Numcolumns

    field=result.FieldName(i)

    value=result.GetValue(field)

    If Isdate(value) Then

    If value=Datevalue("0:00:00") Then

    value=" "

    Else

    value=Format(value,"mm-dd-yyyy")

    End If

    End If

    Set item=doc.AppendItemValue(field,val-ue)

    Next

    Call doc.save(True,True)

    Set db=session.CurrentDataBase

    Set doc=New NotesDocument(db)

    doc.form="test"

    Loop Until result.IsEndOfData

    Call con.Disconnect()

    Else

    Messagebox("Could not connect to server")

    End If

    End Sub

    最后,保存表单并运行,用鼠标点击Read操作后,关系数据库中的内容就被取到Notes的文档型数据库中了。

  

0
相关文章