在LOTUS NOTES中通过ODBC访问关系数据库的方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在LOTUS NOTES中通过ODBC访问关系数据库的方法

1、引言

自从1989年12月6日,莲花发展公司(LOTUS DEVELOPMENT CORP .)发表了Lotus Notes,一种能极大改进公司内部、与其他公司及客户之间的环球通讯、协同工作和协调一致的软件产品。由于它有很好的电子邮件系统,领先的全文检索和复制功能,还具有极强的安全措施,可以可靠地保证安全性,因而得到广泛的应用。

但它也有自身的弱点,在联机事物处理问题,比如:数据统计、分析、图表生成等功能上还很弱,这时就需要传统的关系型数据库管理系统来实现。如何把现有的关系型数据库信息转换到Notes 数据库中,以便利用Lotus Notes中的许多良好性能共享数据库,是本文要讨论的问题。

2、ODBC概述

ODBC(OPEN DA TABASE CONNECTIVITY 开放数据库连接)是微软开放的服务结构(WOSA:MicroSoft Windows Open Service Architechtrue)中有关数据库的一个组成部分,它规定“以统一的API存取异构数据库信息”是对SQL ACCESS GROUP的CLI标准的一种实现,得到了世界上领先的数据库和应用程序开发商的广泛支持。通过使用这统一的API建立的应用程序,对数据库的操作不依赖于任何数据库管理系统,不直接与任何DBMS(数据库管理系统)打交道,从而直接实现应用程序对不同DBMS的共享。

采用ODBC技术,应用程序只需关心数据的处理而不必考虑数据的存取,编程人员不必了解具体的DBMS,从而极大地减少了软件开发人员的工作量,缩短了开发周期,提高了效率和软件的可靠性。

3、ODBC工作原理

ODBC接口以SQL作为标准的查询语言来存取连接到的数据源。ODBC允许单个应用存取多个不同的数据库管理系统,这使得应用开发者可以开发、编辑和发行应用而不管它操作的数据库管理系统(DBMS)究竟是什么。用户可以通过加载连接到不同数据库的驱动程序来建立与各种数据库的连接。

一般说来,ODBC调用由四个层次组成:

3.1、第一层为ODBC应用软件,它通过调用ODBC函数给数据库发送SQL语句并处理SQL返回结果。LOTUS NOTES 是通过NDODBC完成这一功能的。

3.2、第二层为驱动管理软件。驱动管理器管理驱动程序和装载驱动程序,它的作用如下:

●用ODBC.INI文件映射数据源名到特定的驱动程序;

●处理几个ODBC初始化调用;

●给每个驱动程序提供ODBC函数入口点;

●对ODBC的调用参数和顺序进行检验。

3.3、第三层为驱动软件。处理ODBC函数调用,提交SQL请求到特定的数据源并返回结果给应用。如果必要,它会修改应用的SQL请求,以使SQL请求的写法与物定数据库的语法一致。

3.4、第四层是数据源。数据源是指要存取的数据及相关的操作系统、数据库管理系统和网络系统。

4、ODBC接口支持的SQL语句

事实上,ODBC驱动(第三层)程序有两类,一类含有SQL语句处理功,另外一类则没有。

因此,我们可以看到,对不含SQL处理功能的ODBC驱动来说(如SYBASE的ODBC驱动),应用中可以使用的SQL语句就是数据源数据库(如SYBASE)支持的SQL语句,那么,含有SQL 处理功能的ODBC驱动(如dBASE的ODBC驱动)支持哪些SQL呢?

这类ODBC驱动有两部分内容,一类是处理所支持ODBC函数调用的应用程序接口(如API、APPLICATION PROGRAM INTERFACE),另一类是处理所支持SQL语句及SQL数据类型的SQL 处理程序(SQL GRAMMER)。API按其功能大小分为三级:

4.1、第一级(Core):含有X/OPEN和SAG CLI规定的API函数集合。

4.2、第二级(Level1):含有第一级的所有API函数,并且还有一些扩展函数。

4.3、第三级(Level2):含有第一级和第二级的所有API函数,并且还再有一些扩展函数。

LotusNotes 4.5版本要求ODBC驱动的API至少支持到第二级。

5、建立ODBC数据源

Lotus Notes使用ODBC标准存取异种数据库信息。通过Notes里内嵌的公式或Script语言,您可以在Notes文档中引入非Notes信息,可把现成的数据转换成Notes数据库。在存取外部数据之前,您必须先定义一个数据源,以便让ODBC 驱动程序管理器知道怎样获取数据。一个数据源把一个特定的ODBC驱动程序和要存取的数据库联系在一起,并包括您想存取的数据,它与服务器或目录、后台DBMS(数据库管理系统)以及网络平台相联系,这些信息都记录在一个注册文件中(在Windows95中是ODBC.INI),可采用Windows的管理工具注册数据源。ODBC驱动程序管理器负责将应用程序的SQL语句以及其他的信息传递给驱动程序;而驱动程序则负责将结果集传回应用程序。在WINDOWS95中的操作步骤如下:

①打开WINDOWS控制面板;

②按下ODBC图标;

③按下ADD按钮;

④选择您需要的驱动程序,按下OK按钮;

⑤输入数据源名称、描述信息,以及所需要的信息;

⑥有些驱动程序还需要其他的一些信息,输入这些必要的信息,并按下OK按钮;

⑦按下CLOSE按钮。

6、使用函数通过ODBC访问异种数据库

在LOTUS NOTES 4.5版本中提供了三个函数访问异种数据库,并返回一个值或列表值:

●@DBCOLUMN(ODBC)返回表格中一列的全部数组,或者全部不同的数值;

●@DBLOOKUP(ODBC)返回在表格中一列通过匹配关键字选定的数值;

●@DBCOMMAND(ODBC)传递一个命令到外部DBMS并返回结果;

其中@DBCOLUMN、@DBLOOKUP都只能提取数据,它们不能增加、删除、修改数据,或执行其他操作;@DBCOMMAND能恢复数据或发送其他可以改变数据的SQL语句;

下面给出它们的标准形式:

@DbColumn(“ODBC”:”NoCache”;data_source;user_ID1:user_ID2;pass_word1;password2;table;colu mn:null_handling;”Distinct”:sort)

@DbLookup(“ODBC”:”NoCache”;”data_source”;”user_ID1”:”user_ID2”;”password1”;”password2”;”table”;”column”:”null_handling”;”key_column”:”key”;”Distinct”:sort)

@DbCommand(“ODBC”:”NoCache”;da ta_source;user_ID1:user_ID2;pas_sword1;password2;comma nd_string:null_handling)

注意:如果用户的NOTES。INI文件有下列语句:

NoExternalAPP=1

则所有公式被禁止,并且看不到任何错误信息,公式不能执行。

7、通过ODBC使用LotusScript访问外部数据库

LSX兼容模块允许您使用LotusScript语言来编写存取外部数据的程序,Notes的ODBCConnection、ODBCQuery、ODBCResultSet三个类为Notes提供了用ODBC标准存取外部数据库的属性和操作。

记住,您必须把下面的语句放置在(GLOBAL)对象的(OPTIONS)事件中才能访问ODBC类:USELSX“*LSXODBC”

● ODBCCONNECTION类代表了与数据源连接的ODBC DATA ACCESS特性;

● ODBCQUERY类代表定义一个SQL语句的ODBC数据库存取特性,一个查询在被使用或者有效确认之前,必须从属与一个有效的连接

● ODBCRESULTSET类代表在集合上执行操作的ODBC数据存取特性

8、由关系型数据库转换成NOTES数据库的一种实现方法

下面以Notes访问Foxpro数据库为例,介绍Notes访问异种数据库的一种实现方法。

相关文档
最新文档