大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> VB操作Lotus Notes数据库

VB操作Lotus Notes数据库

时间: 2021-07-31 作者:daque

概括 即日,异构数据情况仍旧是一个一致生存的题目,windows常用盛开数据库互连规范odbc举行数据调换与操纵,厥后微软又推出了ado本领,比方用vb操纵oracle、sybase和sql server等,其运用也越来越一致。 办公室机动化软硬件中常用的数据库体例lotus notes,属于非联系数据库处置体例,具备以次特性: 1. 鉴于文书档案构造形式; 2. 运用非构造化的数据元素; 3. 经过准时复制革新数据; 4. 运用视图定位数据; 5. 经过全文字笔迹检验索考察数据。 由于ado或odbc的本领是对准oracle等联系数据库处置体例的,主假如经过sql谈话考察数据,notes纵然也供给了notes odbc,但它并不扶助全文字笔迹检验索,所以要在vb中实行对lotus notes数据库的存取,必需经过其余本领。 在notes中运用com和ole ole是windows的一个特性,ole经过把运用步调的功效动作东西表露给其余运用步调,那些东西具有属性(数据)和本领(因变量),运用步调经过ole中的东西去实行相映的工作。domino既不妨动作一个ole供给给外部步调挪用,也不妨经过ole去遏制其余ole东西。纵然ole也有很多便宜,但domino的ole效劳不扶助早期绑定,这表示着在vb等运用步调中对ole编制程序举行典型查看、赶快启用时,domino ole将抑制运用步调启用notes的存户端,进而对体例爆发宏大压力。其余,运用步调不许同声启用多个notessession,重要出于安定观点,domino的ole不承诺运用步调径直输出用户名和暗号,所以所有运用步调要么一再地启用和封闭domino ole来翻开notessession,要么洪量运用全部变量,对步调安排极为倒霉。 在r5.03此后,lotus供给了一个后盾的com类notessession。notessession是一个功效宏大的东西模子,它供给了其余notes东西的接口,即惟有经过它本领考察notes中的数据库东西notesdatabase、notesview等东西。 因为com与ole的兼容性,所以,用vb等步调操纵domino就变得十分简单,在vb中援用的本领特殊大略,兴建一个工程,在菜单“工程”下采用“援用”,则会展示下列对话框: 图1 兴建工程时介入对domino库的援用同声在form上放一个flexgrid控件,爆发一个如图2所示的窗体。 在窗体事变load 中键入下列代码: 图2 窗口界面private sub form_load() dim session as new domino.notessession dim publicnotesdb as new domino .notesdatabase dim view as notesview dim c as notesviewcolumn dim mycount as integer session.initialize set publicnotesdb = session.getdatabase(“教科文处/教科文”, “档案处置.nsf”) if publicnotesdb is nothing then msgbox (“不许翻开notes库,请察看体例树立!”) end if set view = publicnotesdb.getview(“having autocode”) with grddatagrid .clear j = 0 .rows = 2 .fixedcols = 1 .fixedrows = 1 .col = 1 .fixedrows = .row .row = 0 .cols = 2 j = 1 for each c in view.columns .additem (c.title) x.caption = c.title .col = j .cols = .col + 2 .item(j).visible = false .text = c.title if c.ishidden = true then .colwidth(j) = 0 end if j = j + 1 next .cols = j + 3 .col = j .text = “处置情景” .col = j + 1 .text = “处置因为” .col = j + 2 .text = “处置负担人” .colwidth(2) = 1800 .colwidth(3) = 1800 dim doc as object notesdocument set doc = view.getfirstdocument .row = 1 j = 1 dim str as string do until doc is nothing .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) set doc=view.getnextdocument(doc) if not doc is nothing then if j >= .rows then .rows = j + 1 end if .row = j; j = j + 1 end if loop .mergecells = flexmergerestrictcolumns ’mergecells = 2 .mergecol(0) = true .mergecol(1) = true .mergecol(2) = true .mergecol(3) = true .redraw = true end with end sub 上头的代码中,挪用initialize本领爆发一个notessession 东西,它的本领有点一致vba中挪用word的本领,即使沿用 isopen不妨确定能否仍旧翻开对话框,因变量getdatabase()翻开notes数据库, 个中博得一个数据的因变量用法有点更加: .text = doc.getitemvalue(“备案号”)(0) 运用两个贯串的括号犹如visual basic不承诺,本来domino中允很多定义域,以是因变量getitemvalue()归来的本质上是一个数组,第一个元素从0发端。 按键盘f5发端运转,就不妨看到输入截止。 vb操纵domino com的优缺陷 vb操纵domino com具备以次便宜: ● vb运用步调不须要挪用lotus notes存户端就不妨考察notes的因变量; ● 步调员不妨在安排时运用早期绑定,其速率比晚绑定快,最重要的是不妨运用vb6的智能语法提醒功效; ● com的运转速率比lotus script快; ● 不妨独力于lotus notes存户端举行运用步调散发。 可惜的是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下均处事平常。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.