导出lotus notes中的数据

把数据从lotus notes导出到关系数据库有很多方法:
编写lotus script提取数据并写到外部数据库中;
用lotus提供的java api提取数据并写到外部数据库中;
通过lotus提供的jdbc连接来获取数据并写到外部数据库中;
使用COM技术访问lotus对象提取数据然后写到外部数据库中。

上面这几种方法都大同小异。你都要和notes的对象打交道。notes的对象嵌套得比较厉害:数据库包含视图,试图筛选出文档集合,文档下面是item,item还分好多种。其中richtext的item还包含段落,段落下是纯文本和run(包含格式的文本),还有附件。这样,要导出完整的数据,就要写很多层嵌套的foreach遍历,加上很多的if做类型判断。如果你对notes的对象层次不是很清楚,就有可能在这复杂的嵌套编写中出错并浪费时间。幸运的是,lotus内建了一种数据导出机制,可以把数据库、文档等notes对象导出成xml文件。这样你就不用跟notes的那些层层嵌套的对象打交道了。xml解析可是要简单多了而且大多数程序员都会,这样就可以把notes程序员解放出来了。甚至如果你象我一样,不是一个很循规蹈矩的程序员,那么只要用正则表达式提取关键数据就可以了。:)

下面的代码演示了如何导出一个数据库:

Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase

REM Open xml file named after current database
Dim stream As NotesStream
Set stream = session.CreateStream
filename$ = "c:/dxl/" & Left(db.FileName, Len(db.FileName) - 3) & "dxl"
If Not stream.Open(filename$) Then
Messagebox "Cannot open " & filename$,, "Error"
Exit Sub
End If
Call stream.Truncate

REM Export current database as DXL
Dim exporter As NotesDXLExporter
Set exporter = session.CreateDXLExporter
Call exporter.SetInput(db)
Call exporter.SetOutput(stream)
Call exporter.Process

NotesDXLExporter的SetInput方法不仅可以接受数据库作为参数,还能接受文档、item等作为参数。根据你个人的需要,可以导出任何东西。

这样,我们多走了一步:notes->xml->关系数据库。但是要简单了很多。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
开发思路: 使用ADO通过ODBC链接进行Louts数据读取,在建立一个与SQL server数据库相连的ADO,将读取数据写入SQL server数据库。 安装环境: 首先安装lotus_notes853_win_SC(lotus客户端软件) 然后安装LOTUS_NOTES_SQL_853_W32_CIC6PEN(顺序好像有关系,win8.1安装64位不能正常使用,一定要安装32位的) 数据库连接: 先通过lotus客户端软件连接登陆成功,需要admin.id文件 通过ODBC 数据源(32 位) 添加 Lotus Notes SQL Driver(*.nsf)数据源,选择自己的loust数据库文件.nsf delphi ADO控件通过ODBC Drivers直接连接,本程序用例名设置为LotusOA,每次连接需要输入lotus密码,其他开发这里就不在介绍可以看源代码 delphi ADO控件连接自己本地的SQL Server数据库,程序下载后自己修改 软件使用: 1、配置:通过config.ini修改LOTUSCONN,即LotusOA设置为自己的建立ODBC的名字,关系数据库修改DBCONN,本例为SQLServer数据库 2、启动程序,点“数据源链接”,程序连接到lotus数据库和Sql server数据库 设置原始表名:通过lotus设计程序的试图可以看到,大部分是fm_Main,设置创建表名用于数据导出的表 3、获取表字段,会读处lotus数据的所有表名,自动目标生成表创建的sql语句,默认字段长度都是254,如需要可以自己修改 4、点“创建表”按钮,如果已创建了不要再点这个按钮 5、点“导出数据”,程序开始自动导出数据 如果目标数据库是其他类型数据库,可自己通过配置文件config.ini的DBCONN进行修改 lotus导入关系数据库的资源一直很难找,自己的一点拙见,希望对大家有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值