|
| 作者:佚名 电脑来源:中国站长站 点击数: 更新时间:2006-8-11 |
|
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方法的相似性,因此在此不再累述,更详细的描述请参阅相关的联机帮助。 |
| 电脑录入:不落尘埃 责任编辑:不落尘埃 |
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
| ■■相 关 文 章: | 网站版权与免责声明: |
| 让windows自带的DNS服务支持泛解… DNS的一些相关基础知识 DNS完全解惑问答 Win2000之DNS服务器的设置 深入研究DNS原理 如何在Linux服务器上设置DNS Win 2K动态DNS的安全考虑 |
1、信息来源网络,感谢原创者和原录入者。本站转载其文并不代表赞同其观点或证实其内容。网站所有信息仅供参考,不构成任何之建议、推荐或指引,不能仅凭此信息购药、用药、诊断疾病或开处方,而应以其使用说明书为准,并谨遵医嘱。
2、网站中转载的资料及图片,其版权属原作者或页面内声明的版权人拥有。如果文章的作者或编辑认为不宜上网供大家浏览,或不应无偿使用,请及时用电子邮件或电话通知我们,以便迅速采取适当措施,避免双方造成不必要的经济损失。 |
|
||||||||||