虚拟主机行业最新资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:站长资讯>-> 冲浪宝典-> 网页浏览
vb操作lotusnotes数据库_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,空间150元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
今天,异构数据环境已经是一个普遍存在的问题,Windows常用开放数据库互连标准ODBC进行数据交换与操作,后来微软又推出了ADO技术,例如用VB操作Oracle、Sybase和SQLServer等,其应用也越来越普遍。

办公自动化软件中常用的数据库系统LotusNotes,属于非关系数据库管理系统,具有以下特点:

1.基于文档组织模式;

2.使用非结构化的数据元素;

3.通过定时复制刷新数据;

4.使用视图定位数据;

5.通过全文检索访问数据。

因为ADO或ODBC的方法是针对Oracle等关系数据库管理系统的,主要是通过SQL语言访问数据,Notes尽管也提供了NotesODBC,但它并不支持全文检索,因此要在VB中实现对LotusNotes数据库的存取,必须通过别的方法。

在Notes中使用COM和OLE

OLE是Windows的一个特征,OLE通过把应用程序的功能作为对象暴露给其他应用程序,这些对象拥有属性(数据)和方法(函数),应用程序通过OLE中的对象去执行相应的任务。Domino既可以作为一个OLE提供给外部程序调用,也可以通过OLE去控制其他OLE对象。尽管OLE也有许多优点,但Domino的OLE服务不支持早期绑定,这意味着在VB等应用程序中对OLE编程进行类型检查、快速启动时,DominoOLE将强迫应用程序启动Notes的客户端,从而对系统产生巨大压力。此外,应用程序不能同时启动多个NotesSession,主要出于安全角度,Domino的OLE不允许应用程序直接输入用户名和密码,因此整个应用程序要么频繁地启动和关闭DominoOLE来打开NotesSession,要么大量使用全局变量,对程序设计极为不利。

在R5.03以后,Lotus提供了一个后台的COM类NotesSession。NotesSession是一个功能强大的对象模型,它提供了其他Notes对象的接口,即只有通过它才能访问Notes中的数据库对象NotesDatabase、NotesView等对象。

由于COM与OLE的兼容性,因此,用VB等程序操作Domino就变得相当容易,在VB中引用的方法非常简单,新建一个工程,在菜单“工程”下选择“引用”,则会出现下列对话框:


新建工程时加入对Domino库的引用

同时在Form上放一个FlexGrid控件,产生一个如图2所示的窗体。在窗体事件Load中键入下列代码:


窗口界面

PrivateSubForm_Load()

DimSessionAsNewDomino.NotesSession

DimPublicNotesDbAsNewDomino

.NotesDatabase

DimViewAsNotesView

DimCAsNOTESVIEWCOLUMN

DimMycountAsInteger

Session.Initialize

SetPublicNotesDb=session.GetDatabase(“教科文处/教科文”,“档案管理.nsf”)

IfPublicNotesDbIsNothingThen

MsgBox(“不能打开Notes库,请查看系统设置!”)

EndIf

SetView=PublicNotesDb.GetView(“HavingAutoCode”)

WithgrdDataGrid

.Clear

j=0

.Rows=2

.FixedCols=1

.FixedRows=1

.Col=1

.FixedRows=.Row

.Row=0

.Cols=2

j=1

ForEachCInView.Columns

.AddItem(C.Title)

x.Caption=C.Title

.Col=j

.Cols=.Col 2

.Item(j).Visible=False

.Text=C.Title

IfC.IsHidden=TrueThen

.ColWidth(j)=0

EndIf

j=j 1

Next

.Cols=j 3

.Col=j

.Text=“处理情况”

.Col=j 1

.Text=“处理原因”

.Col=j 2

.Text=“处理责任人”

.ColWidth(2)=1800

.ColWidth(3)=1800

DimDocAsObjectNOTESDOCUMENT

SetDoc=View.GetFirstDocument

.Row=1

j=1

DimStrAsString

DoUntilDocIsNothing

.Col=1

.Text=Doc.GetItemValue(“登记号”)(0)

.Col=2

Str=Doc.GetItemValue(“组卷号”)(0)

.Text=Str

.Col=3

.Text=Doc.GetItemValue(“文件字号”)(0)

.Col=4

.Text=Doc.GetItemValue(“文件名”)(0)

SetDoc=View.GetNextDocument(Doc)

IfNotDocIsNothingThen

Ifj>=.RowsThen

.Rows=j 1

EndIf

.Row=j;j=j 1

EndIf

Loop

.MergeCells=flexMergeRestrictColumns

MergeCells=2

.MergeCol(0)=True

.MergeCol(1)=True

.MergeCol(2)=True

.MergeCol(3)=True

.Redraw=True

EndWith

EndSub

上面的代码中,调用initialize方法产生一个NotesSession对象,它的方法有点类似VBA中调用Word的方法,如果采用IsOpen可以判断是否已经打开对话框,函数GetDatabase()打开Notes数据库,其中取得一个数据的函数用法有点特别:

.Text=Doc.GetItemValue(“登记号”)(0)

使用两个连续的括号似乎VisualBasic不允许,其实Domino中允许多值域,所以函数GetItemValue()返回的实质上是一个数组,第一个元素从0开始。

按键盘F5开始运行,就可以看到输出结果。

VB操作DominoCOM的优缺点

VB操作DominoCOM具有以下优点:

●VB应用程序不需要调用LotusNotes客户端就可以访问Notes的函数;

●程序员可以在设计时使用早期绑定,其速度比晚绑定快,最主要的是可以利用VB6的智能语法提示功能;

●COM的运行速度比LotusScript快;

●可以独立于LotusNotes客户端进行应用程序分发。

遗憾的是Domino的COM与VBA等相比,还有一些明显缺点:

●目前Lotus只支持后台的Domino对象,即session,对于UIWorkSpace并不支持(如果支持,就意味Lotus客户端可以被用户或第三方程序取代);

●由于COM只被Windows所支持,目前Unix还不能使用本文所论述的方法;

●由于安全原因,Louts目前不支持DCOM技术;

●Lotus提供的COM并不支持“ref”内存指针,标准COM提供三种内存指针:“ref”、“unique”和“ptr”,其中“ref”开销最小。

结论

采用COM作为VB与Domino的桥梁,既可以发挥Domino的强大的文档处理能力,又可以发挥VB友好的可视化功能。文中例子是笔者实际工作中使用过的,该设计采用R5.05和VB6开发工具,在Win98、NT和Win2000下均工作正常。->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
文章页数:[1] 
相关主题
Google

热门文章
·phpunit袖珍指南之命令行测试工具_php技巧
·aol中文网站开始投入公测 伺机重返中国市场_it动态
·vb操作lotusnotes数据库_visualbasic教程
·directx7.0使用心得(1)_visualbasic教程
·用dao打开excel文件_visualbasic教程
·菜鸟的数据库入门_visualbasic教程
·vb实现图像在数据库的存储与显示_visualbasic教程
·用vb将命令行软件windows化_visualbasic教程
·从头开始删除集合项目_visualbasic教程
·在windowsnt网络中广播消息_visualbasic教程

最新文章
·photoshop套索工具巧绘黑白木刻特效_photoshop教程
·fireworks简单制作残破边缘技巧_fireworks教程
·photoshop绘工笔画:雍容华贵牡丹图_photoshop教程
·用photoshop设计特效文字之潜水字效果_photoshop教程
·在php中全面阻止sql注入式攻击之三_php技巧
·photoshop巧用彩色画报“折叠”纸飞机_photoshop教程
·怎样在php 中运用 simplexml 处理任务_php技巧
·photoshop基础教程:跟我学调色练习8-唯美效果_photoshop教程
·用photoshop打造疲软的文字效果_photoshop教程
·photoshop滤镜快速绘制光芒四射特效壁纸_photoshop教程

相关主题



友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 一班在线
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
 


联系我们  |  广告服务  |  免责声明  |  友情连接
Copyright ?2005 - 2006 All Rights Reserved
蜀ICP备05000045号