⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 -

📁 介绍了数据库方面的基础知识
💻
字号:
作者:Sure160
email: sure160@china.com
日期:2001-7-18 14:42:07
4.用复本生成复本

  当把数据库的Replicable属性设置为“T”,从而将数据库转换成设计原版时,在复本集中只有一个复本(即设计原版),只能用它来生成第一个复本。可以用MakeReplica方法来生成第一个复本和后续的复本。

  用设计原版生成数据库的第一个复本后,可以用集合中的任一复本来生成另外的复本。事实上,在复本集中增加数据库新备份的唯一途径,就是从一个现存的复本来建立它们。一旦立好,新复本即成为复本集的一部分。所有复本都有唯一的标识,并能相互通信和同步。每个复本集与所有其它复本集是互相独立的,不同复本集的复本不能相互通信或同步。

  注意,在原始数据库的备份被变成设计原版之前,不要用它来生成另外的复本。否则,生成的将不是另外的复本,而是新的设计原版和复本集。

  【例】编写一个过程,用来生成数据库复本。

  过程如下:

  Function MakeAdditionalReplica(strReplica As String, strNewReplica As String, intOptions As         Integer) As integer

   Dim dbs As Database

   On Error GoTo ErrorHandler

   Set dbs = OpenDatabase(strReplicableDB)

   '如果没有选项传递给MakeAdditionalReplilca,

   '就忽略选项参数,该选项参数的缺省值是完全的,读/写复本;

   '否则,使用intoptions的值 

   If intOptions = 0 Then

    dbs.MakeReplica strNewReplica, "Replica of " & strReplicableDB

   Else

    dbs.MakeReplica strNewReplica, "Replica of " & strReplicableDB, intOptions

   End if

   dbs.Close

 rrorHandler:

   Select Case Err

    Case 0:

     MakeAdditionalReplica = 0

     Exit Function

    Case Else:

     MsgBox"error" & err ":" & Error

     MakeAdditionalReplica =-1

     Exit function

   End select

  End function

上述过程可以从一个数据库复本生成一个新的复本。该过程有3个参数,其中第一个参数是数据库复本的文件名,第二个参数是新生成的数据库复本的文件名,第三个参数,即intOptions,可以是DAO常数dbRepMakeReadOnly和dbRepMakePartial的组合,也可以是0。 dbRepMakeReadOnly常数表示复本是只读的,而dbRepMakePartial常数表示复本是部分复本,不是完全复本。例如,为了建立一个只读部分复本,在调用过程MakeAdditionalReplica时,应当把dbRepMakeReadon1y + dbRepMakePartial的值传递给intOptions参数。如果intOptions参数是0,则过程将建立一个完全的读/写复本,因为忽略了MakeReplica方法中的options参数。

  为了调用上述过程建立数据库复本,可以在窗体上画一个命令按钮,然后编写如下的事件过程:

  Private Sub Command1_Click()

   A=MakeAdditionalReplica("c:\dbdir\dblcopy1. mdb","c:\dbdir\dblcopy2.mdb",0)

   if a=o Then

    MsgBox"己生成数据库复本" 

   Else

    MsgBox“操作失败”

   End lf

  End sub

过程中的dblcopy1.mdb 是数据库db1.mdb的复本,而dblcopy2.mdb是dblcopyl.mdb的复本。运行程序,单击命令按钮,将建立一个完全的读/写复本。

  当Microsoft Jet建立新复本时,新复本将包含源复本的所有数据定义语言属性设置值。后续的复本可以由设计原版或集合中的任一复本来生成。

  在用MakeRep1ica方法复制数据库时,正在复制的对象一定不能是锁定的,否则方法的调用会失败。如果一个对象以设计模式打开或在同步期间被更新,则该对象会被Microsoft Jet锁定。在实际的程序设计中,一定要注意这一点,不要试图从拥有锁定对象的数据库来生成复本。

  注意,生成一个新复本后,将把源复本中的所有可复制对象和属性复制到新复本中。虽然所有链接表也被复制,但如果新复本位于网络上,链接表的路径可能会不正确。因此,一定要对新复本进行测试,以确定是否需要为链接表建立新路径。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -