VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 复本操作的对象、属性和方法(3)--网络数据库的复制和同步(4)
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:9729, 日期:2001-02-16
复本操作的对象、属性和方法(3)--网络数据库的复制和同步(4)
4.keepLocal属性和Replicable属性
    
     (1)KeepLocal属性
    
     KeepLocal属性用来保持对象的本地化,即在复制数据库时,使指定的对象不被复制。性用于Document对象、QueryDef对象和TableDef对象。其设置或返回的值是Text类如果把该属性设置为“T”,则在复制数据库时可使相应的对象保持为本地对象。对象制后,不能使用KeepLocal属性。在获取或设置TableDef或QueryDef的KeepLocal属性之前,必须先用CreateProperty建立,并把它附加到对象的Properties集合中。
    
     设置了KeepLocal属性后,该属性将出现在Document对象的Properties集合中。KeepLocal通过CreateProperty方法设置。例如:
    
     Dim dbs As Database
     Dim docTemp As Document
     Dim prpTemp As Property
     Set dbs = OpenDatabase(注释:注释:dbtemp.m4b``)
     Set docTemp = dbs.Containers(注释:注释:Modules注释:注释:).Docu Functions注释:注释:)
     Set prpTemp = docTemp.Createproperty(注释:注释:KeepLoc dbText, 注释:注释:T注释:注释:)
     docTemp.Properties.Append pWTemp
     dbs.Close
    
     上面的程序把KeepLocal属性附加到Documeni对象的properties集合中去。必须在数据库变为可复制之前设置对象(例如表)的属性。再如:
    
     Sub SetKeepLocal(tdftemp As TableDef)
     On Error GoTo ErrHandler
     tdfTemp.Properties("KeepLOcal")="T"
     On Error GoTo 0
     Exit Sub
     ErrHandler:
     Dim prpNew As Property
     If Err.Number = 3270 Then
     Set prpNew = tdfTemp.Createproperty("KeepLocal", dbText, "T")
     tdfTemp.Properties.Append prpNew
     Else
     MsgBox "Error" & Err & "." & Error
     End if
     End Sub
    
     上面的过程把指定对象Tab1eDef的KeepLocal属性设置为“T”。如果keepLocal属性不存在,则先建立之,然后把它附加到表的Properties集合中去,并将其值设置为“T”。
    
     (2)Replicable属性
    
     Replicable属性用来设置或返回一个值,这个值决定数据库或数据库中的对象是否可以复制(仅Microsoft Jet 工作区)。该属性用于Database对象、Document对象、QueryDef对象和TableDef对象。其设置或返回的值是Text类型。对于Database对象,如果把该属性设置为“T”,则可以复制数据库。设置为“T”后,就不能再改变它,如果把它设置为“F”(或其它非“T”值),则会产生错误。对于数据库中的对象,如果把该属性设置为“T”,则可复制Replicas集合中的所有Replica对象(以及对此对象的更改)。也可以在Microsoft Access的对象属性表中设置该属性。
    
     在设置一个Database,Tab1eDef或QueryDef对象的Replicable属性前,必须先用
    
     CreateProperty方法建立它,并把它加入对象的Properties集合中。例如:
    
     sub CreateReplLocalTableX()
     Dim dbsNorthwind As Database
     Dim tdfNew As TableDef
     Dim fldNew As Field
     Dim prpNew As Property
     Set dbsNorthwind = OpenDatabase("c\dbdir\db3 .mdb")
     注释:建立一个名为“NewTab”的新TableDef
     Set tdfNew = dbsNorthwind.CreateTableDef("NewTab")
     注释:定义一个名为“NewField”的文本字段
     Set fldNew = tdfNew.CreateField(“NewField”, dbText, 3)
     注释:把新字段附加到TableDef中
     tdfNew.Fields.Append fldNew
     注释:把新TableDef添加到数据库中
     dbsNorthwind.TableDefs.Append tdfNew
     注释:为新TableDef建立Replicable属性
     Set prpNew = tdfNew.Createproperty(注释:注释:Replicab , dbText, 注释:注释:T注释:注释:)
     注释:把Replicable 属性加到TableDef中
     tdfNew.Properties.Append prpNew
     dbsNorthwind.Close
     End Sub
    
     上述过程建立一个新的TableDef 对象,并使其可复制。注意,包含该对象的数据库必是可复制的,才能执行此过程。再如:
    
     Sub SetReplicable(tdryemp As TableDeD)
     On Error GoTo ErrHandier
     tdryemp.PrOperties(注释:注释:Replicable注释: = 注释:注释:T注释:注释:)
     On Error GoTo 0
     Exii Sub
     ErrHandler.
     Dim prpNew As Property
     If Err.Number = 3270 Then
     Set prpNew = tdfTemp.Createproperty(``Replicab , dbText, 注释:注释:T注释:注释:)
     idfTemp.Properties.Append prpNew
     Else
     MsgBox “Error” & Err & “:” & Error
     End If
     End sub
    
     上述过程将指定TableDef对象的Replicab1e属性设置为“T”。如果属性不存在,则在错误处理子程序中建立之,然后附加到TableDef的Properties集合中,并设置为“T”。
    
     5.MaKeReplica方法
    
     MakeReplica方法用来从一个数据库复本中复制一个新的复本(仅用于Microsoft Jet 工作区)。该方法用于Database对象,其格式如下:
     对象.MakeReplica replica,description,options
    
     格式中各参数的含义如下:
    
     ·对象: Database对象变量。
     · rep1ica:是一个字符串,指定新复本的路径和文件名,如果该参数是当前文件名,则会发生错误。
     ·description:是一个字符串,用来描述所生成的复本。
     ·opii0n8:可选。是一个符号常量或常量组合,用来指定所生成的复本的特征,可以取以下两种值:
     dbRepMakepartial生成一个部分复本
     dbRepMakeReadoniy防止修改新复本。但是,当将新复本与复本集中的另一个复本同步时,对设计和数据的修改将传送到新复本
     上述两个常量可以单独使用,也可以用“十”号组合在一起,例如:
     dbRepMakePartial + dbRepMakeReadOnly