国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

數(shù)據(jù)訪問(wèn)控制--多客戶環(huán)境下VB數(shù)據(jù)庫(kù)編程之(2)

2019-11-18 17:45:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
在單用戶環(huán)境中,只有一個(gè)用戶在訪問(wèn)數(shù)據(jù),因此應(yīng)用程序不會(huì)發(fā)生資源請(qǐng)求沖突。而在多用戶環(huán)境中,當(dāng)用戶訪問(wèn)數(shù)據(jù)時(shí),可能會(huì)發(fā)生沖突。為了管理這些沖突,MicrosoftJet提供了數(shù)據(jù)訪問(wèn)控制和應(yīng)用程序的鎖定服務(wù),以保證在給定的時(shí)間內(nèi)只有一個(gè)用戶可以訪問(wèn)數(shù)據(jù)。數(shù)據(jù)訪問(wèn)控制用來(lái)對(duì)數(shù)據(jù)庫(kù)的部分或全部進(jìn)行訪問(wèn)限制,通常可分為兩類,一類是用戶限制,另一類是功能限制。用戶限制用來(lái)阻止某些人(或只允許某些人)查看或修改“敏感”數(shù)據(jù)。例如,在工資系統(tǒng)中,大多數(shù)人可以查看職工的工資,但只有少數(shù)人才有權(quán)修改實(shí)際的工資信息。功能限制只對(duì)程序的某個(gè)部分起作用,而不管用戶是誰(shuí)。例如,在訂單登記系統(tǒng)中,如果把價(jià)格表設(shè)為只讀模式,則可防止用戶隨意修改某些項(xiàng)目的價(jià)格。在應(yīng)用程序中,可以通過(guò)程序控制或MicrosoftJet數(shù)據(jù)庫(kù)引擎控制來(lái)處理限制。其中程序控制可以施加于程序自身,而引擎級(jí)控制則限制了任何試圖訪問(wèn)數(shù)據(jù)庫(kù)信息的程序。

1.互斥地使用數(shù)據(jù)庫(kù)。以互斥方式打開數(shù)據(jù)庫(kù)是對(duì)數(shù)據(jù)訪問(wèn)施加的最大限制,它實(shí)際上是以“獨(dú)占”方式使用數(shù)據(jù)庫(kù)。這種限制可以阻止任何用戶或程序訪問(wèn)正在使用的數(shù)據(jù)庫(kù)中的信息。由于這種方式的限制太大,因而只用于那些影響整個(gè)數(shù)據(jù)庫(kù)的操作,包括:

·壓縮數(shù)據(jù)庫(kù)。
·更新整個(gè)表(例如用UPDATE查詢)。
·通過(guò)添加表、字段或者索引來(lái)修改數(shù)據(jù)庫(kù)的結(jié)構(gòu)。
·處理特殊的用戶需求(例如傳送審計(jì)信息)。

在程序代碼中,為了以獨(dú)占方式打開一個(gè)數(shù)據(jù)庫(kù),必須把OpenDatabase方法的第二個(gè)參數(shù)設(shè)置為True,例如:

DimoldDbAsDatabase
DimoldwsAsworkSpace
SetoldDb=oldWs.OpenDatabase("Members.mdb",True,False)

用上面的代碼打開數(shù)據(jù)庫(kù)時(shí),如果該數(shù)據(jù)庫(kù)未被其它用戶使用,則打開數(shù)據(jù)庫(kù),這樣直到關(guān)閉之前,該數(shù)據(jù)庫(kù)不會(huì)被其它用戶或程序訪問(wèn);如果數(shù)據(jù)庫(kù)正在被其它用戶使用,則返回一個(gè)錯(cuò)誤。

2.拒絕其它用戶或程序訪問(wèn)指定的表。以獨(dú)占方式打開數(shù)據(jù)庫(kù)后,可以拒絕其它用戶或程序訪問(wèn)整個(gè)數(shù)據(jù)庫(kù)(包括數(shù)據(jù)庫(kù)中的每個(gè)表)。而對(duì)數(shù)據(jù)訪問(wèn)的一種較輕的限制則是拒絕其它用戶或程序訪問(wèn)由本人程序正在使用的表(即記錄集),它實(shí)際上是對(duì)記錄集進(jìn)行鎖定。鎖定記錄集的操作通過(guò)OpenRecordset方法中的Options參數(shù)來(lái)實(shí)現(xiàn)。我們知道,OpenRecordset方法的格式如下:

對(duì)象.OpenRecordset(type,OPtlons,lockedits)

其中的options參數(shù)用來(lái)設(shè)置對(duì)記錄集的鎖定,該參數(shù)可以取多種值,以下兩種值用來(lái)禁止其它用戶對(duì)記錄集進(jìn)行讀寫操作:

1..禁止讀(dbDenyRead)

OpenRecordset方法中的dbDenyRead常量用來(lái)禁止其它用戶查看表中的數(shù)據(jù),直到關(guān)閉該表為止。當(dāng)需要更新整個(gè)表中的信息時(shí),可以使用這個(gè)常量。例如:

DimrstasRecordset
Setrst=dbs.OpenRecordset(strTable,dbOpenTable,dbDenyRead)

2.禁止寫(dbDenywrite)
OpenRecordset方法中的dbDenyWrite常量用來(lái)禁止其它用戶更新表中的數(shù)據(jù),直到關(guān)閉該表為止。在這種情況下,其它用戶可以查看表中的信息,也可以添加新記錄,但不能對(duì)其進(jìn)行修改。當(dāng)需要向表中插入新記錄而又不想修改現(xiàn)有的記錄時(shí),可以使用這個(gè)常量,它對(duì)表和動(dòng)態(tài)集都有效。例如:
DimrstasRecordset
Setrst=dbs.OPenRecordset(strTable,dbOpenTable,dbDenyWrite)

用dbDenyRead和dbDenyWrite可以分別禁止對(duì)記錄集進(jìn)行讀和寫,如果既想禁止讀,又想禁止寫,則可同時(shí)使用這兩個(gè)常量(用“十”號(hào)連接)。例如:
DimrstasRecordset
Setrst=dbs.OpenRecordset(strTable,dbOpenTable,dbDenyRead dbDenyWrite)->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 普兰店市| 石林| 进贤县| 高州市| 峨眉山市| 汾阳市| 资溪县| 海盐县| 白河县| 大邑县| 会泽县| 化州市| 大名县| 金乡县| 扶余县| 迁安市| 玉林市| 高碑店市| 东方市| 汉中市| 濉溪县| 浦县| 博客| 莎车县| 论坛| 达孜县| 阳春市| 陆良县| 内乡县| 辽宁省| 鄄城县| 平谷区| 县级市| 安溪县| 桐乡市| 乡城县| 安平县| 乌海市| 逊克县| 海宁市| 望城县|