登录注册
上海交通大学论坛 > 数据库 > 浏览当前帖子 手机版 关闭左侧栏
Lotus Notes访问异种数据库的一种实现方法
返回本版】  【发表帖子】  【回复帖子 浏览量  8440      回帖数 0
hgfghfhf    等级  

楼主 发表于  2012/5/16 18:33:40    编 辑   


 
 Lotus Notes 4.0是一个很好的群件工作平台,它有很好的电子邮件 
系统,领先的全文检索和复制功能。它还具有极强的安全措施,可以可 
靠地保证信息安全性。但它在解决联机事务处理问题上功能较弱,这 
时就需要传统的关系型数据库管理系统来协助解决。如何把现有的关 
系型数据库信息转移到Notes数据库中,以利用Notes的许多良好性能 
共享数据,就是本文要讨论的问题。本文以Foxpro数据库为例,介绍Lo 
tus Notes访问异种数据库的一种实现方法。 

    Lotus Notes访问异种数据库的途径 
    Lotus Notes使用ODBC标准存取异种数据库信息。通过Notes里内 
嵌的公式或Script语言,可在Notes文档中引入非Notes数据库信息,把 
现成的数据转换成Notes数据库。Notes提供以下方法来存取外部数据 


    在Notes公式里利用@Db函数 
    Notes提供@DbColumn、@DbLookup及@DbCommand三个函数,这三个 
函数的第一个参数用" ODBC",就可访问异种数据库信息。但它有一个 
缺陷:只能按列存取信息,而不能按记录存取信息。 

    利用Lotus Script数据对象 
    LSX兼容模块使用Lotus Script语言来编写存取外部数据的函数, 
Notes的ODBCConnecti on、ODBCQuery及ODBCResultSet三个类为Note 
s提供了用ODBC标准存取异种数据库的属性和操作。 
    在存取外部数据之前,必须定义一个数据源,以便让ODBC驱动程序 
管理器知道怎样获取数据。一个数据源把一个特定的ODBC驱动程序和 
要存取的数据联系在一起,并包括要存取的数据,它与服务器或目录、 
后台DBMS以及网络平台相联系,这些信息都记录在一个注册文件中(  
在Winows95中是ODBC.INI),可采用Windows的管理工具注册数据源。 
在Windows95中操作步骤如下
    1.打开Windows控制面板,按ODBC图标,击Add按钮;  
    2.选择需要的驱动程序,击OK按钮; 

    3.输入数据源名称、描述信息以及所需要的其它信息;  
    4.有些驱动程序还需要□□一些信息,输入这些必需的信息,并击 
OK按钮;  
    5.击Close按钮。 

    Lotus Notes访问Foxpro的一种实现方法 
    实现Notes访问Foxpro数据库的基本编程思想是:对Foxpro的一个 
数据库,按其结构相应地在Notes数据库里建立一个同样结构的表单, 
以便把Foxpro字段的信息经转换后存入Notes 表单相应字段中;建立 
一个代理,用Script语言编写转换程序;再创建一个视图运行这个代理 
,以实现异种数据库信息向Notes数据库转换。 
    现有一个Foxpro数据库BMZBK.DBF,其结构如下
    字段名   类型       宽度   说明 
    code     Character   7     指标编码 
    name     Character   40    指标名称 
    fullname Character   60    指标全称 
    unit     Character   12    计量单位 
    把这个库的所有信息转换到Notes库中的实现步骤如下 
    1.在Notes中新建一个数据库,取名为Convert.nsf,在这个数据库 
里创建一个表单,取名为codelib,其内容如下
    域名          类型       说明 
    code          文本可编辑 指标编码 
    name          文本可编辑 指标名称 
    fullname      文本可编辑 指标全称 
    unit          文本可编辑 计量单位 
    在Convert.nsf库中建立一个代理,取名为vfpagent,定义如下
    运行此代理的时间设定为:人工选择"操作"菜单执行; 
    指定代理操作的文档设定为:视图中所有文档。 
    2.此代理要执行的操作,用Script编写两个事件
    (1)Option事件作如下编程
    Option Public 
    Uselsx"*LSXODBC"  ’存取ODBC类库的全局对象 
    (2)Initialize事件作如下编程
    Sub Initialize 
      Dim session As New Notessession 
      Dim db As Notesdatabase 
      Dim doc As notesdocument 
      Set db=session.currentdatabase 
      Set doc=New notesdocument(db) 
      doc.form="codelib" 
      Dim conn As New ODBCConnection 
      Dim qry As ODBCQuery 
      Dim result As ODBCResultSet 
      Call conn.Disconnect() 
      Set qry=New ODBCQuery 
      Set result=New ODBCResultSet 
      'VFR是ODBC里注册好的数据源 
      If conn.ConnectTo("VFP")Then 
       Set qry.Connection=conn 
       qry.SQL="SELECT*fromBMZBK" '发送查询请求 
       Set result.Query=qry 
       Call result.Execute() 
       columns=result.Columns 
      '取出结果集,并存入Notes相应的字段中 
       Do Until result.IsEndOfData 
     doc.code=Trim$(result.getvalue(1)) 
     doc.name=Trim$(result.getvalue(2)) 
     doc.fullname=Trim$(result.getvalue(3)) 
     doc.unit=Trim$(result.getvalue(4)) 
     Call doc.save(True,True) 
     Set db=session.currentdatabase 
     Set doc=New notesdocument(db) 
     doc.form="codelib" 
     Call result.nextrow() 
       Loop 
     Call conn.Disconnect() ’与数据源断开连接 
     Else 
    Messagebox("Could not connect to server") 
     End If 
    End Sub 

    3.在Convert.nsf库中建立一个视图,取名为DemoView,在此视图 
里创建一个操作,标题为"转换",运行方式为简单操作:运行"vfpagent 
"代理。这样在打开Convert.nsf数据库时,点击DemoView视图,就会在 
屏幕上方出现"转换"操作按钮,点击这个按钮,就可把Foxpr o一个数 
据库BMZBK.DBF的所有信息转换成Notes数据库了。 
    本文介绍的方法已在机器上调试通过,运行环境为
    服务器端:Window NT 3.51,Lotus Notes Server 4.0,IBM PC Se 
rver 320,80M内存。 
    客户端:Windows95,Lotus Notes Client 4.0,金长城586PI/90,1 
6M内存 
1
表情
所有内容均为会员自愿发表,并不代表本站立场.
论坛帮助 会员认证删帖申请 联系我们