程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 復本操作的對象、屬性和方法(3)--網絡數據庫的復制和同步(4)

復本操作的對象、屬性和方法(3)--網絡數據庫的復制和同步(4)

編輯:VB綜合教程
4.keepLocal屬性和Replicable屬性
  
  (1)KeepLocal屬性
  
  KeepLocal屬性用來保持對象的本地化,即在復制數據庫時,使指定的對象不被復制。性用於Document對象、QueryDef對象和TableDef對象。其設置或返回的值是Text類如果把該屬性設置為“T”,則在復制數據庫時可使相應的對象保持為本地對象。對象制後,不能使用KeepLocal屬性。在獲取或設置TableDef或QueryDef的KeepLocal屬性之前,必須先用CreateProperty建立,並把它附加到對象的Properties集合中。
  
  設置了KeepLocal屬性後,該屬性將出現在Document對象的Properties集合中。KeepLocal通過CreateProperty方法設置。例如:
  
  DimdbsAsDatabase
  DimdocTempAsDocument
  DimprpTempAsProperty
  Setdbs=OpenDatabase(''dbtemp.m4b``)
  SetdocTemp=dbs.Containers(''Modules'').DocuFunctions'')
  SetprpTemp=docTemp.Createproperty(''KeepLocdbText,''T'')
  docTemp.Properties.AppendpWTemp
  dbs.Close
  
  上面的程序把KeepLocal屬性附加到Documeni對象的properties集合中去。必須在數據庫變為可復制之前設置對象(例如表)的屬性。再如:
  
  SubSetKeepLocal(tdftempAsTableDef)
  OnErrorGoToErrHandler
  tdfTemp.Properties("KeepLOcal")="T"
  OnErrorGoTo0
  ExitSub
  ErrHandler:
  DimprpNewAsProperty
  IfErr.Number=3270Then
  SetprpNew=tdfTemp.Createproperty("KeepLocal",dbText,"T")
  tdfTemp.Properties.AppendprpNew
  Else
  MsgBox"Error"&Err&"."&Error
  Endif
  EndSub
  
  上面的過程把指定對象Tab1eDef的KeepLocal屬性設置為“T”。如果keepLocal屬性不存在,則先建立之,然後把它附加到表的Properties集合中去,並將其值設置為“T”。
  
  (2)Replicable屬性
  
  Replicable屬性用來設置或返回一個值,這個值決定數據庫或數據庫中的對象是否可以復制(僅MicrosoftJet工作區)。該屬性用於Database對象、Document對象、QueryDef對象和TableDef對象。其設置或返回的值是Text類型。對於Database對象,如果把該屬性設置為“T”,則可以復制數據庫。設置為“T”後,就不能再改變它,如果把它設置為“F”(或其它非“T”值),則會產生錯誤。對於數據庫中的對象,如果把該屬性設置為“T”,則可復制Replicas集合中的所有Replica對象(以及對此對象的更改)。也可以在MicrosoftAccess的對象屬性表中設置該屬性。
  
  在設置一個Database,Tab1eDef或QueryDef對象的Replicable屬性前,必須先用
  
  CreateProperty方法建立它,並把它加入對象的Properties集合中。例如:
  
  subCreateReplLocalTableX()
  DimdbsNorthwindAsDatabase
  DimtdfNewAsTableDef
  DimfldNewAsField
  DimprpNewAsProperty
  SetdbsNorthwind=OpenDatabase("cdbdirdb3.mdb")
  '建立一個名為“NewTab”的新TableDef
  SettdfNew=dbsNorthwind.CreateTableDef("NewTab")
  '定義一個名為“NewField”的文本字段
  SetfldNew=tdfNew.CreateField(“NewField”,dbText,3)
  '把新字段附加到TableDef中
  tdfNew.Fields.AppendfldNew
  '把新TableDef添加到數據庫中
  dbsNorthwind.TableDefs.AppendtdfNew
  '為新TableDef建立Replicable屬性
  SetprpNew=tdfNew.Createproperty(''Replicab,dbText,''T'')
  '把Replicable屬性加到TableDef中
  tdfNew.Properties.AppendprpNew
  dbsNorthwind.Close
  EndSub
  
  上述過程建立一個新的TableDef對象,並使其可復制。注意,包含該對象的數據庫必是可復制的,才能執行此過程。再如:
  
  SubSetReplicable(tdryempAsTableDeD)
  OnErrorGoToErrHandier
  tdryemp.PrOperties(''Replicable'=''T'')
  OnErrorGoTo0
  ExiiSub
  ErrHandler.
  DimprpNewAsProperty
  IfErr.Number=3270Then
  SetprpNew=tdfTemp.Createproperty(``Replicab,dbText,''T'')
  idfTemp.Properties.AppendprpNew
  Else
  MsgBox“Error”&Err&“:”&Error
  EndIf
  Endsub
  
  上述過程將指定TableDef對象的Replicab1e屬性設置為“T”。如果屬性不存在,則在錯誤處理子程序中建立之,然後附加到TableDef的Properties集合中,並設置為“T”。
  
  5.MaKeReplica方法
  
  MakeReplica方法用來從一個數據庫復本中復制一個新的復本(僅用於MicrosoftJet工作區)。該方法用於Database對象,其格式如下:
  對象.MakeReplicareplica,description,options
  
  格式中各參數的含義如下:
  
  ·對象:Database對象變量。
  ·rep1ica:是一個字符串,指定新復本的路徑和文件名,如果該參數是當前文件名,則會發生錯誤。
  ·description:是一個字符串,用來描述所生成的復本。
  ·opii0n8:可選。是一個符號常量或常量組合,用來指定所生成的復本的特征,可以取以下兩種值:
  dbRepMakepartial生成一個部分復本
  dbRepMakeReadoniy防止修改新復本。但是,當將新復本與復本集中的另一個復本同步時,對設計和數據的修改將傳送到新復本
  上述兩個常量可以單獨使用,也可以用“十”號組合在一起,例如:
  dbRepMakePartial+dbRepMakeReadOnly->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved