欢迎来到天天文库
浏览记录
ID:38642005
大小:31.50 KB
页数:4页
时间:2019-06-16
《编程高手之路—vb与数据库----网络数据库的复制和同步(六)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编程高手之路—vb与数据库----网络数据库的复制和同步(六)2.使对象可以复制 如果在复本中建立了一个新对象,并且想把它从本地的改为可复制的,使得其它用户都可以使用它,则需要在设计原版中建立该对象,并且将其Replicab1e属性设置为“T”。在这种情况下,务必删除所有复本中的这个本地对象,否则会产生一个错误。 对于TableDef和QueryDef对象,可以直接建立Replicab1e属性,并添加到对象的属性集合中,就像处理KeepLocal属性那样。而对于由宿主应用程序所定义的窗体、报表、宏和模块,则应建立Replicable属性,然后添加到表示该对
2、象的Document对象的属性集合中。 在下一次同步时,新的可复制对象将出现在集合的其它复本中。类似地,如果想把可复制对象改为本地对象,则应将其Replicab1e属性设置为“F”。和KeepLocal属性一样,如果正在设置Replicab1e属性的对象已经从其它对象继承了这个属性,则其它对象设置的值对这个对象不起作用,必须直接对每个对象设置Rep1icab1e属性。 注意,如果把一个对象的Replicab1e属性从“T”改为“F”,该对象便从可复制状态变为本地的,在这种情况下,MicrosoftJet将只在设计原版中保留该对象,而从复本集的其它复本中删掉
3、。在改变表的可复制状态时,应当格外小心。即使在设计原版中暂时把一个可复制表改变为本地表,然后再改回可复制的,但下次同步时仍然将会在每个复本中删除并重建该表。除非在进行设计变更之前同步所有的复本,否则将会丢失自上次同步以来输入到表中的所有数据。3.构造设计原版 设计原版也是一个数据库复本,但它是一个可以复制的复本。为了把一个数据库变为设计原版,需要为Database对象建立Rep1icab1e属性,并把该属性添加到Database对象的属性集合中,然后将其Replicab1e属性设置为“T”。【例】编写一个Function过程,把指定的数据库变为设计原版。过程
4、如下:PublicFunctionSetReplicable(strDBAsString)AsintegerDimprpReplicableAsPropertyDimdbsTargetAsDatabaseOnErrorGoToErrorHandlerSetdbsTarget=OpenDatabase(strDB,True)‘若属性已存在,则关闭错误处理OnErrorResumeNext'创建Replicable属性SetprpReplicable=dbsTarget.Createproperty("Replicable",dbText,''T'`)'把该属性添
5、加到属性集合中dbsTarget.Properties.AppendprpReplicable'把该属性设置为"T"dbsTarget.PrOperties("Replicable")=''T''SetReplicable=0ErrorHandler:SelectCaseErrCase0SetReplicable=0ExitFunctionCaseElseMsgBox"Error"&Err":"&ErrorSetReplicable=-1ExitFunctionEndSelectEndFunction上述过程把指定的数据库转换为设计原版。如果Rep1icab1
6、e属性不存在,则建立该属性,井把它设置为指定的值。为了调用上述过程,可以在窗体上画一个命令按钮,然后编写如下的事件过程:PrivateSubConunandl_Click()DimMyDBAsDatabaseDimaAsintegera=SetReplicable(''c:dbdirdbl.mdb``)Ifa=0ThenMsgBox"成功设置Replicable属性"ElseMsgBox"设置失败"EndifEndsub运行程序,单击命令按钮,将调用SetReplicable过程,为指定的数据库添加和设置Replicab1e属性,并根据执行情况显示相应的信
7、息。在转换进程中,MicrosoftJet将维持原始数据库的所有属性设置值。4.用复本生成复本当把数据库的Replicable属性设置为“T”,从而将数据库转换成设计原版时,在复本集中只有一个复本(即设计原版),只能用它来生成第一个复本。可以用MakeReplica方法来生成第一个复本和后续的复本。用设计原版生成数据库的第一个复本后,可以用集合中的任一复本来生成另外的复本。事实上,在复本集中增加数据库新备份的唯一途径,就是从一个现存的复本来建立它们。一旦立好,新复本即成为复本集的一部分。所有复本都有唯一的标识,并能相互通信和同步。每个复本集与所有其它复本集是互
8、相独立的,不同复本集的复本不能相互通信
此文档下载收益归作者所有