问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

两个access数据库怎么实现数据同步?

发布网友 发布时间:2022-04-30 05:19

我来回答

2个回答

懂视网 时间:2022-04-11 11:48

  同步(Synchronization)是数据库在网络环境中应用所要涉及到的一个重要概念。其基本过程大致分以下几个步骤:

  1、首先把一个数据库设为可复制副本属性,使其成为设计正本(VB中称设计原版,ACCESS中称设计母版)。

  2、然后根据应用程序的实现需要从设计正本复制出多个副本(VB中称复本),这些副本组成一个副本集合(设计正本也被看做是第一个的、初始的副本)。

  3、最后在集中任何复本的数据或结构被更改会时启用同步机制把改变发送并且应用于此复本集中的其他成员,使得副本集中的成员在数据或结构上保持一致性。

  实现同步的这一过程被称为同步化。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数据库同步]使Access数据库保持同步的思路分析

标签:pop   出现   清除   prope   dbn   bre   副本集   字符   nav   

热心网友 时间:2022-04-11 08:56

access里面也可以写代码,就行同步,但比较麻烦。
如果是我,我写个小软件,定时对两个数据库进行同步。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
显卡降价矿难了!分享几个检测矿卡的实用软件 怎么分辨二手显卡刷bios 下文教你 怎么识别矿卡 鉴别矿卡的方法介绍 怎么设置小度在家回家视频通话? 贵阳砂岩雕塑厂有哪些 西安市长安二中附近有老年公寓没 来西安这么久了第一次租到性价比高的房子,松鼠公寓良心推荐_西安... 陕西省自强中等专业学校2024年学费多少 宝鸡市区有什么比较好的楼盘 乔安如何远程监控 c# access数据库里怎样进行不同列表里两列的数据同步 如何实现ACCESS中两张表的同步? ACCESS如何使两个表中含有相同字段的数据同步显示在相应的窗体内 access数据库怎么实现两个表的同步 手机贴膜起边进了气泡 怎么可以处理掉啊 如何在access中实现表与表之间的数据同步 手机贴膜起了泡怎么办 梦见女友怀了别人的孩子,意味着什么? 梦见分离已经五年的老婆怀了人家的孩子,我很生气,要动手打她,请问这是什么征兆 梦见老婆怀别人孩子 老梦见老婆生了别人的孩子,还和老婆打架。这是不是心理有问题了?? 昨晚梦到女朋友怀了别人的孩子,这代表什么? 梦见老婆怀了别人的孩子三四个月了,她还有说有笑,好像很对一样,原来做梦梦见她从来没看见过这么清晰得 新茶好喝还是陈茶 请问茶叶是喝新的好还是陈的好, 怎么用ps技术美化毕业照 新茶好还是陈茶好?该如何鉴别? 毕业照后期用PS怎么处理 毕业照怎么ps照片 照毕业照,这种照片怎样PS处理能清晰一些啊?求助 两个access的数据库是否能做同步 access同步问题 两个Access数据库可以同步吗,怎么同步 access 几张表之间的同步更新 Oracle里面数据如何与access数据自动同步 C# ACCESS数据库“同步”的问题,非局域网 易语言编写局域网ACCESS数据库数据同步问题 小燕子在晚上时眼睛会发光吗 软件pdf转成word后,word里的内容是图片格式的。 户外垃圾桶带烟灰缸下雨时易装满水,如何处理 为什么吸烟要用烟灰缸 室外吸烟亭设计有什么要求吗 烟灰缸中熄灭的烟蒂会持续7天“放毒”,是真的吗? 这是烟灰缸吗,。。可以做别的用处吗 北汽新能源EX360烟灰缸如何使用? 女杀手穿越成懦弱废物,并且文中还有一个隐藏锋芒的傻王爷这类的穿越文,能推荐几个吗 没有烟灰缸的时候你都用什么东西代替过烟灰缸呢? 途邦达的车载烟灰缸实用吗?质量怎么样? 有好看的杀手穿越小说吗 北汽新能源EX系列车型烟灰缸如何使用?