同步(Synchronization)是數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)環(huán)境中應(yīng)用所要涉及到的一個(gè)重要概念。
其基本過(guò)程大致分以下幾個(gè)步驟:首先把一個(gè)數(shù)據(jù)庫(kù)設(shè)為可復(fù)制副本屬性,使其成為設(shè)計(jì)正本(VB中稱(chēng)設(shè)計(jì)原版,ACCESS中稱(chēng)設(shè)計(jì)母版);然后根據(jù)應(yīng)用程序的實(shí)現(xiàn)需要從設(shè)計(jì)正本復(fù)制出多個(gè)副本(VB中稱(chēng)復(fù)本),這些副本組成一個(gè)副本集合(設(shè)計(jì)正本也被看做是第一個(gè)的、初始的副本);最后在集中任何復(fù)本的數(shù)據(jù)或結(jié)構(gòu)被更改會(huì)時(shí)啟用同步機(jī)制把改變發(fā)送并且應(yīng)用于此復(fù)本集中的其他成員,使得副本集中的成員在數(shù)據(jù)或結(jié)構(gòu)上保持一致性。實(shí)現(xiàn)同步的這一過(guò)程被稱(chēng)為同步化。VB6.0為實(shí)現(xiàn)同步,在數(shù)據(jù)庫(kù)對(duì)象中提供了多個(gè)屬性與方法來(lái)實(shí)現(xiàn)這一過(guò)程,以下介紹主要的幾個(gè)屬性與方法,分別對(duì)應(yīng)同步化的幾個(gè)步驟:
---- 1.Replicable屬性:
---- Replicable屬性用來(lái)使一個(gè)數(shù)據(jù)庫(kù)對(duì)象或數(shù)據(jù)庫(kù)中的表對(duì)象、查詢(xún)對(duì)象等對(duì)象成為可復(fù)制副本的,即成為設(shè)計(jì)正本。但數(shù)據(jù)庫(kù)對(duì)象并不提供Replicable這一屬性,因此首先要用CreatePropety方法來(lái)創(chuàng)建它,然后把它添加到對(duì)象的屬性集中,最后再給它賦值,使數(shù)據(jù)庫(kù)成為設(shè)計(jì)正本。對(duì)于數(shù)據(jù)庫(kù)對(duì)象而言,把Replicable屬性設(shè)置為“T”將使數(shù)據(jù)庫(kù)對(duì)象成為可復(fù)制的。以下代碼將使VB6.0安裝目錄下附帶的Nwind.mdb數(shù)據(jù)庫(kù)成為一個(gè)設(shè)計(jì)正本(為確保安全建議在操作前備份這一庫(kù)文件):
Private Sub Command1_Click()
Dim dbNwind As Database
'如果末引用DAO則一定要先引用
Dim prpNew As Property
Set dbNwind = OpenDatabase("Nwind.mdb", True)
With dbNwind
' 建立Replicable屬性,
如果已經(jīng)存在該屬性則程序略過(guò)這一步
On Error Resume Next
Set prpNew = .CreateProperty
("Replicable", dbText, "T")
.Properties.Append prpNew
'設(shè)置數(shù)據(jù)庫(kù)的Replicable屬性為T(mén)rue
.Properties("Replicable") = "T"
.Close
End With
End Sub
---- 2.MakeReplica方法:
---- MakeReplica方法從設(shè)計(jì)正本復(fù)制出一個(gè)新的完全副本。其語(yǔ)法為:database.MakeReplica replica, description, options,其中replica是代表一個(gè)新副本路徑名稱(chēng)的字符串;description是對(duì)正在創(chuàng)建的新副本的一個(gè)描述字符串;options是一個(gè)可選項(xiàng),可以是dbRepMakePartial常量(創(chuàng)建一個(gè)部分副本)或dbRepMakeReadOnly常量(防止用戶(hù)修改新副本中的可復(fù)制對(duì)象),如果要建立的是一個(gè)只讀式的部分副本,則要加入?yún)?shù)常量 dbRepMakeReadOnly + dbRepMakePartial 。
其基本過(guò)程大致分以下幾個(gè)步驟:首先把一個(gè)數(shù)據(jù)庫(kù)設(shè)為可復(fù)制副本屬性,使其成為設(shè)計(jì)正本(VB中稱(chēng)設(shè)計(jì)原版,ACCESS中稱(chēng)設(shè)計(jì)母版);然后根據(jù)應(yīng)用程序的實(shí)現(xiàn)需要從設(shè)計(jì)正本復(fù)制出多個(gè)副本(VB中稱(chēng)復(fù)本),這些副本組成一個(gè)副本集合(設(shè)計(jì)正本也被看做是第一個(gè)的、初始的副本);最后在集中任何復(fù)本的數(shù)據(jù)或結(jié)構(gòu)被更改會(huì)時(shí)啟用同步機(jī)制把改變發(fā)送并且應(yīng)用于此復(fù)本集中的其他成員,使得副本集中的成員在數(shù)據(jù)或結(jié)構(gòu)上保持一致性。實(shí)現(xiàn)同步的這一過(guò)程被稱(chēng)為同步化。VB6.0為實(shí)現(xiàn)同步,在數(shù)據(jù)庫(kù)對(duì)象中提供了多個(gè)屬性與方法來(lái)實(shí)現(xiàn)這一過(guò)程,以下介紹主要的幾個(gè)屬性與方法,分別對(duì)應(yīng)同步化的幾個(gè)步驟:
---- 1.Replicable屬性:
---- Replicable屬性用來(lái)使一個(gè)數(shù)據(jù)庫(kù)對(duì)象或數(shù)據(jù)庫(kù)中的表對(duì)象、查詢(xún)對(duì)象等對(duì)象成為可復(fù)制副本的,即成為設(shè)計(jì)正本。但數(shù)據(jù)庫(kù)對(duì)象并不提供Replicable這一屬性,因此首先要用CreatePropety方法來(lái)創(chuàng)建它,然后把它添加到對(duì)象的屬性集中,最后再給它賦值,使數(shù)據(jù)庫(kù)成為設(shè)計(jì)正本。對(duì)于數(shù)據(jù)庫(kù)對(duì)象而言,把Replicable屬性設(shè)置為“T”將使數(shù)據(jù)庫(kù)對(duì)象成為可復(fù)制的。以下代碼將使VB6.0安裝目錄下附帶的Nwind.mdb數(shù)據(jù)庫(kù)成為一個(gè)設(shè)計(jì)正本(為確保安全建議在操作前備份這一庫(kù)文件):
Private Sub Command1_Click()
Dim dbNwind As Database
'如果末引用DAO則一定要先引用
Dim prpNew As Property
Set dbNwind = OpenDatabase("Nwind.mdb", True)
With dbNwind
' 建立Replicable屬性,
如果已經(jīng)存在該屬性則程序略過(guò)這一步
On Error Resume Next
Set prpNew = .CreateProperty
("Replicable", dbText, "T")
.Properties.Append prpNew
'設(shè)置數(shù)據(jù)庫(kù)的Replicable屬性為T(mén)rue
.Properties("Replicable") = "T"
.Close
End With
End Sub
---- 2.MakeReplica方法:
---- MakeReplica方法從設(shè)計(jì)正本復(fù)制出一個(gè)新的完全副本。其語(yǔ)法為:database.MakeReplica replica, description, options,其中replica是代表一個(gè)新副本路徑名稱(chēng)的字符串;description是對(duì)正在創(chuàng)建的新副本的一個(gè)描述字符串;options是一個(gè)可選項(xiàng),可以是dbRepMakePartial常量(創(chuàng)建一個(gè)部分副本)或dbRepMakeReadOnly常量(防止用戶(hù)修改新副本中的可復(fù)制對(duì)象),如果要建立的是一個(gè)只讀式的部分副本,則要加入?yún)?shù)常量 dbRepMakeReadOnly + dbRepMakePartial 。