亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

VB操作LotusNotes數據庫

2019-11-18 17:53:32
字體:
來源:轉載
供稿:網友
今天,異構數據環境已經是一個普遍存在的問題,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下均工作正常。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人xxxx视频| 欧美资源在线观看| 狠狠久久五月精品中文字幕| 欧美一级淫片aaaaaaa视频| 丝袜亚洲欧美日韩综合| 久久视频在线直播| 精品伊人久久97| 尤物精品国产第一福利三区| 国产精品视频精品视频| 亚洲精品99久久久久中文字幕| 久热在线中文字幕色999舞| 2019亚洲日韩新视频| 亚洲精品中文字| 日韩电视剧在线观看免费网站| 欧美日韩一区二区三区| 在线亚洲男人天堂| 2021久久精品国产99国产精品| 色偷偷av亚洲男人的天堂| 成人免费大片黄在线播放| 欧美高清激情视频| 久久久国产一区| 欧日韩不卡在线视频| 色综合导航网站| 在线观看视频99| 俺去啦;欧美日韩| 亚洲欧洲黄色网| 亚洲精品美女在线| 国产精品自产拍高潮在线观看| 日韩亚洲欧美中文高清在线| 国产亚洲美女久久| 91日韩在线视频| 国产精品一香蕉国产线看观看| 亚洲精品有码在线| 久久久久久美女| 国产精品嫩草影院一区二区| 国产精品久久综合av爱欲tv| 亚洲专区在线视频| 亚洲影院色在线观看免费| 国产国产精品人在线视| 亚洲激情在线观看视频免费| 国产精品美女主播| 国产97在线亚洲| 国产精品久久久久久久久免费| 日韩精品视频免费在线观看| 国产在线精品一区免费香蕉| 日本精品免费观看| 国产精品视频免费在线观看| 欧美大成色www永久网站婷| 国产日韩一区在线| 国产视频福利一区| 黄色一区二区三区| 日韩成人av网址| 久久精品国产综合| 成人欧美在线视频| 91午夜在线播放| 91久久久国产精品| 日韩av日韩在线观看| 亚洲欧洲黄色网| 亚洲人午夜精品免费| 精品国产一区二区三区在线观看| 国产成人在线一区| 中文字幕在线国产精品| 久久伊人色综合| 欧美日韩中文字幕| 亚洲最大福利视频网| 欧美极品欧美精品欧美视频| 91精品国产免费久久久久久| 精品日本美女福利在线观看| 丝袜亚洲另类欧美重口| 国产日韩欧美电影在线观看| 国产精品久久久久7777婷婷| 国产精品一二三在线| 精品久久久久久亚洲精品| 成人黄色在线播放| 美女扒开尿口让男人操亚洲视频网站| 日本最新高清不卡中文字幕| 久久久av一区| 96国产粉嫩美女| 欧美在线视频网站| 国产69精品久久久久9| 国产欧美日韩丝袜精品一区| 日韩一区二区福利| 国产不卡av在线免费观看| 欧美裸体xxxx极品少妇软件| 91欧美精品成人综合在线观看| 日韩风俗一区 二区| 91久久中文字幕| 亚洲精品自产拍| 日韩小视频网址| 欧美猛男性生活免费| 欧美极品少妇xxxxⅹ裸体艺术| 国模吧一区二区| 亚洲一区美女视频在线观看免费| 人九九综合九九宗合| 欧美黑人又粗大| 欧美激情视频在线| 国产精品福利在线观看网址| 国产精品久久久久久久久粉嫩av| 成人av资源在线播放| 国产精品久久久久久久久久久久久久| 精品视频久久久| 国产精品久久久久久久美男| 中文字幕精品一区二区精品| 亚洲欧美另类在线观看| 亚洲国产精品va在线看黑人| 国内精品模特av私拍在线观看| 久久精品99久久久久久久久| 亚洲国产成人精品久久久国产成人一区| 精品国产乱码久久久久酒店| 欧美一级在线亚洲天堂| 欧美日韩美女在线观看| 91av免费观看91av精品在线| 欧洲成人在线视频| 欧美韩国理论所午夜片917电影| 日韩中文在线观看| 久久久亚洲精选| 狠狠色狠狠色综合日日小说| 亚洲成人精品视频在线观看| 日韩国产在线播放| 日韩精品免费在线| 日本高清不卡的在线| 欧美精品国产精品日韩精品| 姬川优奈aav一区二区| 欧美重口另类videos人妖| 国产精品第七影院| 午夜免费在线观看精品视频| 亚洲乱码国产乱码精品精天堂| 日本精品性网站在线观看| 欧美精品第一页在线播放| 国产精品网站入口| 亚洲淫片在线视频| 日本一本a高清免费不卡| 日韩三级影视基地| 亚洲二区在线播放视频| 成人春色激情网| 超在线视频97| 亚洲乱亚洲乱妇无码| 亚洲激情视频在线观看| 欧洲s码亚洲m码精品一区| 丰满岳妇乱一区二区三区| 亚洲人成77777在线观看网| 精品自在线视频| 亚洲国产91色在线| 亚洲国产成人精品女人久久久| 美女国内精品自产拍在线播放| 岛国av一区二区三区| 中文字幕亚洲欧美| 川上优av一区二区线观看| 欧美丰满少妇xxxxx做受| 亚洲国产中文字幕久久网| 亚洲国产天堂久久综合| 国产日本欧美一区二区三区| 欧美日韩国产综合视频在线观看中文| 亚洲国产又黄又爽女人高潮的| 国内成人精品一区| 日产精品久久久一区二区福利| 久久九九精品99国产精品| 浅井舞香一区二区| 亚洲自拍偷拍福利| 欧美激情精品久久久久久久变态| 亚洲天堂网站在线观看视频| 欧美亚洲国产日韩2020| 国产欧美在线视频| 欧美极品少妇xxxxⅹ免费视频|