VB:使ACCESS數(shù)據(jù)庫在網(wǎng)絡使用中保持同步

字號:

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