荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Peter (小飞侠), 信区: Program
标  题: Lotus Notes访问异种数据库的一种实现方法
发信站: BBS 荔园晨风站 (Wed Jan 27 17:48:29 1999), 转信


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内存

--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店