论坛登陆  注册 文章专区 投稿文章 旧版浏览 
首页 | 页界资讯 | 安全动态 | 网络应用 | 组网技术 | 软件应用 | 工具软件 | 网管知识 | 帮助
文学 | 操作系统 | 注 册 表 | 编程语言 | 数 据 库 | 服 务 器 | 网页设计 | 图形图象 | VIP
论坛 | 网络安全 | 安全防范 | 黑客技术 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
专题 | 教育频道 | 特色专题 | 精文荟萃 | 聊天通讯 | 网络文学 | 书籍下载 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>数据库>>Access>>正文

使ACCESS数据库保持同步

Www.Xker.Com 作者:不详  来源:网络转载  加入日期:2005-11-1 9:15:28
同步(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  "www.mycompany.myserver.com" & "/files/NwReplica.mdb", dbRepImpExpChanges 
+ dbRepSyncInternet
4.PopulatePartial 方法:
  上面介绍利用Synchronize方法使两个完全副本同步化,不会出现问题,但如果用一个完全副本来同步一个部分副本,因为部分副本是由副本过滤器来从完全副本来过滤重新生成的,因此可能在部分副本中产生所谓的“孤立”记录,即这些记录不能再与其他副本保持同步。要解决这一问题引入了另一个称为PopulatePartial的方法,该方法与Synchronize方法类似,只不过它是实现部分副本与完全副本的同步,在同步时,首先清除部分副本中的所有记录,然后根据当前副本的过滤器来重新生成部分副本,这样就解决了“孤立”记录的问题。其语法为:database.PopulatePartial 
dbname。dbname是完全副本的路径名称。由于篇幅所限以及其与Synchronize方法的相似性,因此在此不再累述,更详细的描述请参阅相关的联机帮助。 
关闭窗口】【浏览次数:】【发送给好友】【收藏此页
相关文章 最新文章 热门文章

·保护Access 2000数据库的安全 
·数据库转化的问题
·使ACCESS数据库保持同步 
·浅谈ACCESS数据库升迁SQLSERVER 
· Access 新手来看
·Access 中引用的相对应的名称
·长期使用中型Access数据库的一点经验
·隐藏 Access 窗口
·两个未公开的ACCESS方法的使用技巧
·Delphi中的Access技巧集
·使用Honeypots同Internet蠕虫作斗争
·2005年度主流聊天工具横评
·由神秘到简单 教你在网页中添加微软地
·只需三步!闪盘立刻变成启动盘
·DMA让你的硬盘速度飞起来
·安全防护知识 ——端口扫描技术全攻略
·把USB的门口守好
·连环追击 查杀网页病毒及后遗症排除
·让你的电脑全速运行
·以太网技术大全(1)
评论 本站声明
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网 冀ICP备05002857号