【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的文档型数据库中了。