CDaoWorkspace::CompactDatabase

static void PASCAL CompactDatabase(LPCTSTR lpszSrcName,
                                   LPCTSTR lpszDestName,
                                   LPCTSTR lpszLocale = dbLangGeneral,
                                   int nOptions = 0
                                  );
  throw(CDaoException,CMemoryException);

static void PASCAL CompactDatabase(LPCTSTR lpszSrcName,
                                   LPCTSTR lpszDestName,
                                   LPCTSTR lpszLocale,
                                   int nOptions,
                                   LPCTSTR lpszPassword
                                  );
  throw(CDaoException,CMemoryException);

参数:
lpszSrcName现有关闭的工作区名字。它可以是一个完整的路径和文件名,例如“C:\\MYDB.MDB”。如果文件名有扩展名,则必须指定它。如果网络支持统一命名规则(UNC),还可以指定网络路径,例如“\\\\MYSERVER\\ MYSHARE\\MYDIR\\MYDB.MDB”(因为“\”在C++中是脱离字符,路径字符串中需要双反斜线)。
lpszDestName创建的压缩数据库的完整路径。还可以像lpszSrcName那样指定网络路径。不能使用lpszDestName参数指定与lpszSrcName相同的数据库文件。
lpszPassword想压缩密码保护的数据库时使用的密码。注意到使用采取密码的CompactDatabase版本时,必须提供所有参数。同样地,因为这是一个连接参数,它需要下面的特殊格式:;PWD =lpszPassword。例如:;PWD =“Happy”(开头的分号必需)。
lpszLocale用来指定创建lpszDestName所需的对照顺序。如果接受缺省dbLangGeneral值(见下面),新数据库的位置与旧数据库的相同。
可能的取值为:
·dbLangGeneral英语、德、法、葡萄牙、意大利、现代西班牙语
·dbLangArabic阿拉伯语
·dbLangRussian俄语
·dbLangCzech捷克语
·dbLangDutch荷兰语
·dbLangGreek希腊语
·dbLangHebrew希伯来语
·dbLangHungarian匈牙利语
·dbLangIceLandic冰岛语
·dbLangNordic北欧语言(只对Microsoft Jet数据库引擎1.0版)
·dbLangNorwdan挪威和丹麦语
·dbLangPolish波兰语
·dbLangSpanish传统西班牙语
·dbLangSwedfin瑞典和芬兰语
·dbLangTurkish土耳其语
nOptions表示用于目标数据库lpszDestName的一个或多个选项。如果接受缺省值省略此参数,lpszDestName将具有与lpszSrcName相同的加密和版本。可以使用位操作OR操作符合并dbEncrypt或dbDecrypt与一个版本选项。指定数据库格式而非数据库引擎版本的可能值是:
·dbEncrypt压缩时加密数据库
·dbDecrypt压缩时解密数据库
·dbVersion10压缩时使用Microsoft Jet数据库引擎1.0版创建数据库。
·dbVersion11压缩时使用Microsoft Jet数据库引擎1.1版创建数据库。
·dbVersion20压缩时使用Microsoft Jet数据库引擎2.0版创建数据库。
·dbVersion30压缩时使用Microsoft Jet数据库引擎3.0版创建数据库。
可以使用选项参数中的dbEncrypt或dbDecrypt指定是否在压缩期间加密或解密数据库。如果省略加密常数或者同时包括dbDecrypt和dbEncrypt,lpszDestName将具有与lpszSrcName相同的加密。可以使用选项参数中的一个版本常数对压缩数据库指定数据格式版本。
这个常数只影响lpszDestName的数据格式版本。可以只指定一个版本常数。如果省略版本常数,lpszDestName将具有和lpszSrcName相同的版本。可以只把lpszDestName压缩为与lpszSrcName相同或晚些的版本。
警告:
如果数据库未加密,即使实现了用户/密码安全性,仍然有可能直接读取组成数据库的二进制磁盘文件。

说明:
调用这个成员函数,可以压缩指定的Microsoft Jet(.MDB)数据库。改变数据库中的数据时,数据库文件被分为片段,使用超过必需的更多磁盘空间。应该周期性压缩数据库以消除数据库文件碎片。压缩后的数据库通常较小。在拷贝和压缩数据库期间,还可以选择改变对照顺序、加密或数据格式版本。
警告:
CompactDatabase成员函数不能正确地转换完整的MicrosoftAccess数据库版本。只有数据格式发生转换,像表格和报表等Microsoft Access定义对象都不能转换。但是数据得到正确转换。
提示:还可以使用CompactDatabase拷贝数据库文件。
有关工作区的更多信息,请参阅联机文档“Visual C++程序员指南”中的“DAO工作区”。有关信息,请参阅DAO帮助中的“CompactDatabase方法”。

请参阅:CDaoWorkspace::RepairDatabase