



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编程高手之路vb与数据库-网络数据库的复制和同步(六)2使对象可以复制如果在复本中建立了一个新对象,并且想把它从本地的改为可复制的,使得其它用户都可以使用它,则需要在设计原版中建立该对象,并且将其Replicab1e属性设置为“T”。在这种情况下,务必删除所有复本中的这个本地对象,否则会产生一个错误。对于TableDef和QueryDef对象,可以直接建立Replicab1e属性,并添加到对象的属性集合中,就像处理KeepLocal属性那样。而对于由宿主应用程序所定义的窗体、报表、宏和模块,则应建立Replicable属性,然后添加到表示该对象的Document对象的属性集合中。在下一次同步时,新的可复制对象将出现在集合的其它复本中。类似地,如果想把可复制对象改为本地对象,则应将其Replicab1e属性设置为“F”。和KeepLocal属性一样,如果正在设置Replicab1e属性的对象已经从其它对象继承了这个属性,则其它对象设置的值对这个对象不起作用,必须直接对每个对象设置Rep1icab1e属性。注意,如果把一个对象的Replicab1e属性从“T”改为“F”,该对象便从可复制状态变为本地的,在这种情况下, Microsoft Jet将只在设计原版中保留该对象,而从复本集的其它复本中删掉。在改变表的可复制状态时,应当格外小心。即使在设计原版中暂时把一个可复制表改变为本地表,然后再改回可复制的,但下次同步时仍然将会在每个复本中删除并重建该表。除非在进行设计变更之前同步所有的复本,否则将会丢失自上次同步以来输入到表中的所有数据。3构造设计原版设计原版也是一个数据库复本,但它是一个可以复制的复本。为了把一个数据库变为设计原版,需要为Database对象建立Rep1icab1e属性,并把该属性添加到Database对象的属性集合中,然后将其Replicab1e属性设置为“T”。【例】编写一个Function过程,把指定的数据库变为设计原版。过程如下:Public Function SetReplicable(strDB As String)As integerDim prpReplicable As PropertyDim dbsTarget As DatabaseOn Error GoTo ErrorHandlerSet dbsTarget = OpenDatabase(strDB,True)若属性已存在,则关闭错误处理On Error Resume Next 创建Replicable 属性 Set prpReplicable =dbsTarget.Createproperty( Replicable, dbText, T)把该属性添加到属性集合中dbsTarget.Properties.Append prpReplicable把该属性设置为TdbsTarget.PrOperties(Replicable)= TSetReplicable = 0ErrorHandler:Select Case ErrCase 0SetReplicable = 0Exit FunctionCase ElseMsgBox Error & Err : & ErrorSetReplicable = -1Exit FunctionEnd SelectEnd Function上述过程把指定的数据库转换为设计原版。如果Rep1icab1e属性不存在,则建立该属性,井把它设置为指定的值。为了调用上述过程,可以在窗体上画一个命令按钮,然后编写如下的事件过程:Private Sub Conunandl_Click()Dim MyDB As DatabaseDim a As integera = SetReplicable(c:dbdirdbl .mdb)If a = 0 ThenMsgBox 成功设置Replicable 属性ElseMsgBox 设置失败End ifEnd sub运行程序,单击命令按钮,将调用SetReplicable过程,为指定的数据库添加和设置Replicab1e属性,并根据执行情况显示相应的信息。在转换进程中,Microsoft Jet将维持原始数据库的所有属性设置值。4用复本生成复本当把数据库的Replicable属性设置为“T”,从而将数据库转换成设计原版时,在复本集中只有一个复本(即设计原版),只能用它来生成第一个复本。可以用MakeReplica方法来生成第一个复本和后续的复本。用设计原版生成数据库的第一个复本后,可以用集合中的任一复本来生成另外的复本。事实上,在复本集中增加数据库新备份的唯一途径,就是从一个现存的复本来建立它们。一旦立好,新复本即成为复本集的一部分。所有复本都有唯一的标识,并能相互通信和同步。每个复本集与所有其它复本集是互相独立的,不同复本集的复本不能相互通信或同步。注意,在原始数据库的备份被变成设计原版之前,不要用它来生成另外的复本。否则,生成的将不是另外的复本,而是新的设计原版和复本集。【例】编写一个过程,用来生成数据库复本。过程如下:Function MakeAdditionalReplica(strReplica As String, strNewReplica As String, intOptions As Integer) As integerDim dbs As DatabaseOn Error GoTo ErrorHandlerSet dbs = OpenDatabase(strReplicableDB)如果没有选项传递给MakeAdditionalReplilca,就忽略选项参数,该选项参数的缺省值是完全的,读/写复本;否则,使用intoptions的值 If intOptions = 0 Thendbs.MakeReplica strNewReplica, Replica of & strReplicableDBElsedbs.MakeReplica strNewReplica, Replica of & strReplicableDB, intOptionsEnd ifdbs.CloseErrorHandler:Select Case ErrCase 0:MakeAdditionalReplica = 0Exit FunctionCase Else:MsgBoxerror & err : & ErrorMakeAdditionalReplica =-1Exit functionEnd selectEnd function上述过程可以从一个数据库复本生成一个新的复本。该过程有3个参数,其中第一个参数是数据库复本的文件名,第二个参数是新生成的数据库复本的文件名,第三个参数,即intOptions,可以是DAO常数dbRepMakeReadOnly和dbRepMakePartial的组合,也可以是0。 dbRepMakeReadOnly常数表示复本是只读的,而dbRepMakePartial常数表示复本是部分复本,不是完全复本。例如,为了建立一个只读部分复本,在调用过程MakeAdditionalReplica时,应当把dbRepMakeReadon1y dbRepMakePartial的值传递给intOptions参数。如果intOptions参数是0,则过程将建立一个完全的读写复本,因为忽略了MakeReplica方法中的options参数。为了调用上述过程建立数据库复本,可以在窗体上画一个命令按钮,然后编写如下的事件过程:Private Sub Command1_Click()A=MakeAdditionalReplica(c:dbdirdblcopy1. mdb,c:dbdirdblcopy2.mdb,0)if ao ThenMsgBox己生成数据库复本 ElseMsgBox“操作失败”End lfEnd sub过程中的dblcopy1.mdb 是数据库db1.mdb的复本,而dblcopy2.mdb是dblcopyl.mdb的复本。运行程序,单击命令按钮,将建立一个完全的读/写复本。当Microsoft Jet建立新复本时,新复本将包含源复本的所有数据定义语言属性设置值。后续的复本可以由设计原版或集合中的任一复本来生成。在用MakeRep1ica方法复制数据库时,正在复制的对象一定不能是锁定的,否则方法的调用会失败。如果一个对象以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英语词汇语法竞赛培训试题及答案解析
- 短视频制作知识培训试题及答案
- 一年级语文期末考试题及答案
- 安全管理专业试题带答案
- Lesson 4 I need to call my mother说课稿-2023-2024学年小学英语六年级下册冀教版(一起)
- 2025金融机构贷款合同标准版
- 2025二手汽车吊买卖合同范本
- 基金投资从业预约考试及答案解析
- 大学安全意识题库及答案解析
- 2025核安全法测试题及答案解析
- 工程质量管理标准化
- HG∕T 5087-2016 2,6-二叔丁基苯酚
- SMT锡膏使用记录表
- (正式版)QBT 5998-2024 宠物尿垫(裤)
- 人教鄂教版小学科学二上-人教鄂教版二年级科学上册电子课本-高清教材
- 高中政治只有坚持和发展中国特色社会主义才能实现中华民族伟大复
- (完整)马克思主义政治经济学习题及参考答案
- 电土施表1-6 专业绿色施工、节能减排管理措施和实施记录
- 读书分享读书交流会《中国民间故事》
- 《哈利·波特》读书分享会
- 校服采购投标方案
评论
0/150
提交评论