论文部分内容阅读
【摘 要】Domino是目前办公自动化系统的主流开发平台之一,Domino自带一个非关系型数据库即文档型数据库,而目前大多数集团化财务管控信息都使用诸如SQL Server、oracle等关系型数据库,因此,集团信息化建设势必要涉及如何把Domino导入到oracle数据库的问题。Domino与关系数据库之间的相互交换信息,相互融合的技术伴随着实际应用的不断增加,其技术也日渐成熟。本篇文章主要介绍的是Domino与oracle数据库的融合,以这案例为模版来研究,这对Domino与关系数据库之间在未来的交流发展上广泛的应用前景。
【关键词】Domino 关系数据 oracle数据库 相互融合
【中图分类号】TP311.13 【文献标识码】A 【文章编号】1672-5158(2013)03-0103-02
前言
Domino拥有一个文档数据库管理系统,擅长于存储非结构化信息,并提供全文检索、版本控制、留痕迹修改功能,有别于一般的关系型数据库,如oracle、mysql、SQL server等,对单一的消息和工作流系统来说是不错的架构,由于对关系数据处理能力非常弱,相对于关系型数据库数据维护困难,查询和数据统计效率就比较低下,如果想做较大规模的业务整合或者业务开发,会是困难重重,因此与关系型数据库如何的融合是个课题。
1 Domino重要概念介绍
Domino是一种群组工作软件。使用了Domino的服务器称为Domino服务器。Domino的功能强大,界面丰富,主要用于辅助多人协同工作,从而突破平台、技术、组织和地理上的限制,充分实现信息与技术方面的共享。Domino系统的的关键专业术语有:组织单元,人员,服务器,验证字,验证者,标识符,目录,Domino域等等。组织单元(Orgnization Unit)类似就是相当于现实生活中单位内部的一个部门或者单位的一个分支机构。在Domino环境中,人员就是Domino系统的用户。服务器(Server)是用于存放数据信息的计算机。验证字(certificate)在Domino环境中的组织单元,人员等都必须要有自己的验证字,才能用在互相访问和信息交换中验证自己的身份。验证者(Certifier)又名证明者,证明人,在DOMINO环境中,组织和组织单元被称为验证者,组织验证者是最高级别的验证者,组织单元验证者是由组织验证者产生的,人员和服务器的验证字是经过组织或组织单元验证者验证后产生的。标识符(ID)是把组织,组织单元,人员,服务器的验证字有关信息,保存在一个后缀名为ID的磁盘文件中,这个文件就是组织,组织单元,人员或服务器的ID。Domino目录用来存放组织,组织单元,人员,服务器及其配置信息的数据库,其文件名一般是names.nsf。Domino域(Domino domain)共享同一个Domino目录的一组Domino服务器。简而言之就是使用同一个names.nsf的一组Domino服务器。
2 Domino 与关系数据库的融合关键
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,标准数据查询语言SQL就是一种基于关系数据库的语言,关系模型是由关系数据结构、关系操作集合、关系完整性约束三部分组成。
在项目开发过程中,Domino很多功能需要Java代理及外接数据库才好实现,核心的问题是:如何把原先的关系型数据库中的内容全部导入Domino 中是因为企业现在的所有数据都集中在一个关系型数据库中,因此希望domino数据库能与旧的关系库互操作,而不必在数据库转换上浪费更多资源。对于企业来说,如果企业数据存放在不止一个关系库中,那么就需要购买若干个此类产品,而且实现过程较为复杂。
因此能否通过Lotus Script编写一个通用的数据库转换程序就成为系统开发的关键之一。具体解决方法如下:
第一步 在控制面板——>32位ODBC数据源中建立用户数据源
Test;
第二步 在Domino R5中新建一个数据库Try,并建立一个空白表单Connection,此表单没有任何内容,然后在表单上创建一个“操作”,起名为“Read”;
第三步 在“Read”操作的编程窗口中选择编程语言为Lotus Script;
第四步 在编程窗口的对象窗口中点击“Option”事件,并写入如下脚本: Uselsx "*lsxodbc" // 使用Lotus Script 擴展对象中的ODBC类
第五步 选中“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
定义程序中使用到的各种对象。
第六步 选中“Click”事件,在其中写入:
Sub Click(Source As Button)
Set New Value
Set session = New NotesSession
Set con = New ODBCConnection
// 新建ODBCConnection对象实例
Set qry = New ODBCQuery
// 新建ODBCQuery对象实例
Set result = New ODBCResultSet // 新建ODBCResultSet对象实例
取得当前数据库信息
Set db = session.CurrentDataBase
Set doc = New NotesDocument(db)
// 新建文档 doc.form = "connection"
// 新建文档的表单指向connection
Call con.Disconnect()
// 保证con对象当前没有连接其他数据源
If con.ConnectTo("test") Then
// 如果连接成功
Set qry.connection = con
// 将建立好连接的con交给query对象
qry.SQL = "SELECT * FROM Table1"
// SQL 语句
Set result.Query = qry
// 将已经连接上数据源并写好SQL
语句的query对象赋给result对象
Call result.Execute()
// 循环直到结果集为空
Call result.NextRow()
// 指针指向下一条记录
For i = 1 To result.Numcolumns
// 根據字段的索引值得到字段的名字value = result.GetValue(field)
// 取得字段值 If Isdate(value) Then
// 将关系库中的值写到Notes当前库的当前表单中
Next Call doc.save(True,True)
// 当一条记录的所有字段都被写入 Notes库后保存此文档
Set db = session.CurrentDataBase Set doc = New NotesDocument(db)
// 断开与数据源的连接
Else Messagebox("Could not connect to server")
End If End Sub
最后,保存表单并运行,用鼠标点击Read 操作后,关系数据库中的信息就融入到Notes的文档型数据库中了。
【关键词】Domino 关系数据 oracle数据库 相互融合
【中图分类号】TP311.13 【文献标识码】A 【文章编号】1672-5158(2013)03-0103-02
前言
Domino拥有一个文档数据库管理系统,擅长于存储非结构化信息,并提供全文检索、版本控制、留痕迹修改功能,有别于一般的关系型数据库,如oracle、mysql、SQL server等,对单一的消息和工作流系统来说是不错的架构,由于对关系数据处理能力非常弱,相对于关系型数据库数据维护困难,查询和数据统计效率就比较低下,如果想做较大规模的业务整合或者业务开发,会是困难重重,因此与关系型数据库如何的融合是个课题。
1 Domino重要概念介绍
Domino是一种群组工作软件。使用了Domino的服务器称为Domino服务器。Domino的功能强大,界面丰富,主要用于辅助多人协同工作,从而突破平台、技术、组织和地理上的限制,充分实现信息与技术方面的共享。Domino系统的的关键专业术语有:组织单元,人员,服务器,验证字,验证者,标识符,目录,Domino域等等。组织单元(Orgnization Unit)类似就是相当于现实生活中单位内部的一个部门或者单位的一个分支机构。在Domino环境中,人员就是Domino系统的用户。服务器(Server)是用于存放数据信息的计算机。验证字(certificate)在Domino环境中的组织单元,人员等都必须要有自己的验证字,才能用在互相访问和信息交换中验证自己的身份。验证者(Certifier)又名证明者,证明人,在DOMINO环境中,组织和组织单元被称为验证者,组织验证者是最高级别的验证者,组织单元验证者是由组织验证者产生的,人员和服务器的验证字是经过组织或组织单元验证者验证后产生的。标识符(ID)是把组织,组织单元,人员,服务器的验证字有关信息,保存在一个后缀名为ID的磁盘文件中,这个文件就是组织,组织单元,人员或服务器的ID。Domino目录用来存放组织,组织单元,人员,服务器及其配置信息的数据库,其文件名一般是names.nsf。Domino域(Domino domain)共享同一个Domino目录的一组Domino服务器。简而言之就是使用同一个names.nsf的一组Domino服务器。
2 Domino 与关系数据库的融合关键
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,标准数据查询语言SQL就是一种基于关系数据库的语言,关系模型是由关系数据结构、关系操作集合、关系完整性约束三部分组成。
在项目开发过程中,Domino很多功能需要Java代理及外接数据库才好实现,核心的问题是:如何把原先的关系型数据库中的内容全部导入Domino 中是因为企业现在的所有数据都集中在一个关系型数据库中,因此希望domino数据库能与旧的关系库互操作,而不必在数据库转换上浪费更多资源。对于企业来说,如果企业数据存放在不止一个关系库中,那么就需要购买若干个此类产品,而且实现过程较为复杂。
因此能否通过Lotus Script编写一个通用的数据库转换程序就成为系统开发的关键之一。具体解决方法如下:
第一步 在控制面板——>32位ODBC数据源中建立用户数据源
Test;
第二步 在Domino R5中新建一个数据库Try,并建立一个空白表单Connection,此表单没有任何内容,然后在表单上创建一个“操作”,起名为“Read”;
第三步 在“Read”操作的编程窗口中选择编程语言为Lotus Script;
第四步 在编程窗口的对象窗口中点击“Option”事件,并写入如下脚本: Uselsx "*lsxodbc" // 使用Lotus Script 擴展对象中的ODBC类
第五步 选中“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
定义程序中使用到的各种对象。
第六步 选中“Click”事件,在其中写入:
Sub Click(Source As Button)
Set New Value
Set session = New NotesSession
Set con = New ODBCConnection
// 新建ODBCConnection对象实例
Set qry = New ODBCQuery
// 新建ODBCQuery对象实例
Set result = New ODBCResultSet // 新建ODBCResultSet对象实例
取得当前数据库信息
Set db = session.CurrentDataBase
Set doc = New NotesDocument(db)
// 新建文档 doc.form = "connection"
// 新建文档的表单指向connection
Call con.Disconnect()
// 保证con对象当前没有连接其他数据源
If con.ConnectTo("test") Then
// 如果连接成功
Set qry.connection = con
// 将建立好连接的con交给query对象
qry.SQL = "SELECT * FROM Table1"
// SQL 语句
Set result.Query = qry
// 将已经连接上数据源并写好SQL
语句的query对象赋给result对象
Call result.Execute()
// 循环直到结果集为空
Call result.NextRow()
// 指针指向下一条记录
For i = 1 To result.Numcolumns
// 根據字段的索引值得到字段的名字value = result.GetValue(field)
// 取得字段值 If Isdate(value) Then
// 将关系库中的值写到Notes当前库的当前表单中
Next Call doc.save(True,True)
// 当一条记录的所有字段都被写入 Notes库后保存此文档
Set db = session.CurrentDataBase Set doc = New NotesDocument(db)
// 断开与数据源的连接
Else Messagebox("Could not connect to server")
End If End Sub
最后,保存表单并运行,用鼠标点击Read 操作后,关系数据库中的信息就融入到Notes的文档型数据库中了。