如何实现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
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/access/10777.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Windows 7添加Access数据源
时间:2020-12-29
-
2012年上半年计算机二级
时间:2020-12-08
-
2014年计算机二级考试Acc
时间:2020-12-08
-
ACCESS数据库多表查询技巧
时间:2020-12-08
-
Access教程_access数据库教程
时间:2020-12-08
-
Access2007教程 怎样在设计视
时间:2020-12-08
-
Access2007表的数据表教程
时间:2020-12-08
-
如何在Access中创建数据表
时间:2020-12-08
热门文章
-
在Access 2007中保护Access密码和进行加密
时间:2020-12-07
-
如何学会对ACCESS数据库的性能进行分析
时间:2020-12-08
-
Access2007数据表的操作
时间:2020-12-07
-
在Access2007表中添加和删除字段
时间:2020-12-07
-
Access2000教程:Access导入数据库文件
时间:2020-12-07
-
Windows 7添加Access数据源
时间:2020-12-29
-
Access2007教程 怎样在设计视图下创建查询
时间:2020-12-08
-
Access2000教程:Access 如何加密/解密数据库
时间:2020-12-07
-
在Access2007中使用“多值”实现文字的su
时间:2020-12-07
-
Access教程_access数据库教程_access数据库入
时间:2020-12-08
