使ACCESS数据库保持同步

2008-02-23 08:04:45来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

同步(Synchronization)是数据库在网络环境中应用所要涉及到的一个重要概念。其基本过程大致分以下几个步骤:首先把一个数据库设为可复制副本属性,使其成为设计正本(VB中称设计原版,ACCESS中称设计母版);然后根据应用程序的实现需要从设计正本复制出多个副本(VB中称复本),这些副本组成一个副本集合(设计正本也被看做是第一个的、初始的副本);最后在集中任何复本的数据或结构被更改会时启用同步机制把改变发送并且应用于此复本集中的其他成员,使得副本集中的成员在数据或结构上保持一致性。实现同步的这一过程被称为同步化。VB6.0为实现同步,在数据库对象中提供了多个属性与方法来实现这一过程,以下介绍主要的几个属性与方法,分别对应同步化的几个步骤: ~com

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方法: Www@@com

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方法: ~com

Synchronize方法使两个完全副本(包括设计正本)同步化。其语法为:database.Synchronize pathname, exchange。其中pathname为要同步的目标副本的路径名称字符串(串中的 .mdb扩展名可省略);exchange用来标识两个数据库之间的同步方向(如表一),这是一个可选项,默认为表中的第三个选项,即双向交换。利用表中第四个dbRepSyncInternet常量选项,还可对通过Internet互联的数据库进行同步化,这时要将代表本地网络路径选项pathname用URL地址来代替。 ^com

表一、同步化方向常 .com

常量 同步化方向

DbRepExportChanges 从数据库到副本路径名称 _com

DbRepImportChanges 从副本路径名称到数据库

DbRepImpExpChanges 双向交换改变(默认) 站.长站

DbRepSyncInternet 在通过Internet路径连接的数据库之间传递改变 .com

在同步化操作之前,要确保已经利用 Replicable属性使一个数据库初始出设计正本,并且利用MakeReplica方法复制出了一个以上的副本。 Www@@com

以下通过在第一个例子添加的副本复制语句之后,加入如下语句:.Synchronize "NwReplica.mdb", dbRepExportChanges,实现把数据库Nwind的设计正本的任何改变传递给副本 NwReplica。我们可以在Nwind.mdb库中改变一些数据内容,然后再运行这一例子,我们会发现Nwind.mdb库的改变已经反映在NwReplica.mdb这一副本中了。 中.国站长站

以上语句实现从数据库到副本路径名称的同步(把设计正本的数据或结构改变传递给副本),把dbRepExportChanges常量改为dbRepImportChanges和dbRepImpExpChanges可分别实现从副本路径名称到数据库(数据库接收副本上的改变)以及双向交换(两者间的双向数据传递)同步。

Synchronize方法还可对通过Internet互联的数据库进行同步化,以下语句实现本地数据库正本与位于Internet服务器上的一个副本同步化:dbNwind.Synchronize "www.mycompany.myserver.com" & "/files/NwReplica.mdb", dbRepImpExpChanges dbRepSyncInternet ~com

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在Access中使用系统表保存应用程序变量

下一篇:当Access文件大于指定的大小时就自动压缩