同步(Synchronization)是數據庫在網絡環境中應用所要涉及到的一個重要概念。其基本過程大致分以下幾個步驟:首先把一個數據庫設為可復制副本屬性,使其成為設計正本(VB中稱設計原版,ACCESS中稱設計母版);然後根據應用程序的實現需要從設計正本復制出多個副本(VB中稱復本),這些副本組成一個副本集合(設計正本也被看做是第一個的、初始的副本);最後在集中任何復本的數據或結構被更改會時啟用同步機制把改變發送並且應用於此復本集中的其他成員,使得副本集中的成員在數據或結構上保持一致性。實現同步的這一過程被稱為同步化。VB6.0為實現同步,在數據庫對象中提供了多個屬性與方法來實現這一過程,以下介紹主要的幾個屬性與方法,分別對應同步化的幾個步驟:
---- 1.Replicable屬性:
---- Replicable屬性用來使一個數據庫對象或數據庫中的表對象、查詢對象等對象成為可復制副本的,即成為設計正本。但數據庫對象並不提供Replicable這一屬性,因此首先要用CreatePropety方法來創建它,然後把它添加到對象的屬性集中,最後再給它賦值,使數據庫成為設計正本。對於數據庫對象而言,把Replicable屬性設置為“T”將使數據庫對象成為可復制的。以下代碼將使VB6.0安裝目錄下附帶的Nwind.mdb數據庫成為一個設計正本(為確保安全建議在操作前備份這一庫文件):
Private Sub Command1_Click()
Dim dbNwind As Database
'如果末引用DAO則一定要先引用
Dim prpNew As Property
Set dbNwind = OpenDatabase("Nwind.mdb", True)
With dbNwind
' 建立Replicable屬性,
如果已經存在該屬性則程序略過這一步
On Error Resume Next
Set prpNew = .CreateProperty
("Replicable", dbText, "T")
.Properties.Append prpNew
'設置數據庫的Replicable屬性為True
.Properties("Replicable") = "T"
.Close
End With
End Sub
---- 2.MakeReplica方法:
---- MakeReplica方法從設計正本復制出一個新的完全副本。其語法為:database.MakeReplica replica, description, options,其中replica是代表一個新副本路徑名稱的字符串;description是對正在創建的新副本的一個描述字符串;options是一個可選項,可以是dbRepMakePartial常量(創建一個部分副本)或dbRepMakeReadOnly常量(防止用戶修改新副本中的可復制對象),如果要建立的是一個只讀式的部分副本,則要加入參數常量 dbRepMakeReadOnly + dbRepMakePartial 。
---- 在第一個例子中,在關閉數據庫之前加入代碼:.MakeReplica "NwReplica", "replica of nwind.mdb",則從Nwind.mdb設計正本復制出一個名為NwReplica.mdb的副本,位置在Nwind.mdb同一目錄中。以下是一個通過傳遞參數的形式,在實際應用中可供靈活調用的函數,每調用該函數一次即可實現新建一個副本:
Function MakeAdditionalReplica(strReplicableDB As
String, strNewReplica As String, intOptions As
Integer) As Integer
Dim dbsTemp As Database
On Error GoTo ErrorHandler
Set dbsTemp = OpenDatabase(strReplicableDB)
' 如果在調用此函數時,intOptions處末給出參數,
則忽略該參數項,默認建立一個完全
'的、可讀/寫的副本,否則就利用提供的參數按要求建立副本
If intOptions = 0 Then
dbsTemp.MakeReplica strNewReplica,
"Replica of " & strReplicableDB