使ACCESS数据库保持同步
摘要:使ACCESS数据库保持同步
使ACCESS数据库保持同步
同步(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
Else
dbsTemp.MakeReplica strNewReplica, "Replica of " & strReplicableDB, intOptions
End If
dbsTemp.Close
ErrorHandler:
Select Case Err
Case 0:
MakeAdditionalReplica = 0
Exit Function
Case Else:
MsgBox "Error " & Err & " : " & Error
MakeAdditionalReplica = Err
Exit Function
End Select
End Function
3.Synchronize方法:
Synchronize方法使两个齐全正本(包括设计副本)同步化。其语法为:database.Synchronize pathname, exchange。其中pathname为要同步的指标正本的门路称号字符串(串中的 .mdb扩充名可省略);exchange用来标识两个数据库之间的同步方向(如表一),这是一个可选项,默以为表中的第三个选项,即双向替换。应用表中第四个dbRepSyncInternet常量选项,还可对经过Internet互联的数据库停止同步化,
这时要将代表本地网络门路选项pathname用URL地址来代替。
表一、同步化方向常量
常量
同步化方向
DbRepExportChanges
从数据库到正本门路称号
DbRepImportChanges
从正本门路称号到数据库
DbRepImpExpChanges
双向替换扭转(默许)
DbRepSyncInternet
在经过Internet门路衔接的数据库之间传递扭转
在同步化操作之前,要确保已经应用 Replicable属性使一个数据库初始出设计副本,并且应用MakeReplica方法复制出了一个以上的正本。
以下经过在第一个例子减少的正本复制语句之后,退出如下语句:.Synchronize "NwReplica.mdb", dbRepExportChanges,完成把数据库Nwind的设计副本的任何扭转传递给正本 NwReplica。咱们可能在Nwind.mdb库中扭转一些数据内容,然后再运转这一例子,咱们会发现Nwind.mdb库的扭转已经反映在NwReplica.mdb这一正本中了。
以上语句完成从数据库到正本门路称号的同步(把设计副本的数据或构造扭转传递给正本),把dbRepExportChanges常量改为dbRepImportChanges和dbRepImpExpChanges可分别完成从正本门路称号到数据库(数据库接纳正本上的扭转)以及双向替换(两者间的双向数据传递)同步。
Synchronize方法还可对经过Internet互联的数据库停止同步化,以下语句完老本地数据库副本与位于Internet服务器上的一个正本同步化:dbNwind.Synchronize "" & "/files/NwReplica.mdb", dbRepImpExpChanges + dbRepSyncInternet
4.PopulatePartial 方法:
上面引见应用Synchronize方法使两个齐全正本同步化,不会出现成绩,但假设用一个齐全正原本同步一个局部正本,由于局部正本是由正本过滤器来从齐全正原本过滤重重生成的,因此能够在局部正本中产生所谓的“孤立”记载,即这些记载不能再与其余正本保持同步。要处理这一成绩引入了另一个称为PopulatePartial的方法,该方法与Synchronize方法类似,只不过它是完成局部正本与齐全正本的同步,在同步时,首先肃清局部正本中的一切记载,然后依据以后正本的过滤器来重重生成局部正本,这样就处理了“孤立”记载的成绩。其语法为:database.PopulatePartial dbname。dbname是齐全正本的门路称号。因为篇幅所限以及其与Synchronize方法的相似性,因此在此不再累述,更具体的形容请参阅相干的联机协助。
分享到: