你目前正处于脱机状态,正在等待 Internet 重新连接

如何通过 ADO 压缩Microsoft Access 数据库

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 230501
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。
概要
尽管 ADO 技术指标不提供压缩 Microsoft Access 数据库中的对象,可以通过使用 ADO 扩展实现这种功能 ︰ Microsoft Jet OLE DB 提供程序和同步复制对象 (JRO)。在 JET OLE DB 提供程序版本 4.0 (Msjetoledb40.dll) 和 JRO 版本 2.1 (Msjro.dll) 第一次实施这种功能。后安装的 MDAC 2.1 这些 DLL 文件不可用。您可以从以下网站下载最新版本的 MDAC:
更多信息
要压缩 Access 数据库中使用 ADO,MDAC 2.1 或更高版本必须正确安装在计算机上。若要压缩 Microsoft Access 数据库中使用 Visual Basic 和 Visual C++ 的主要步骤如下 ︰

Visual Basic ︰ 压缩通过 ADO 访问数据库

  1. 在 Visual Basic IDE,在项目菜单中单击引用
  2. 添加Microsoft Jet 和复制对象 X.X 库,其中 (X.X 是大于或等于 2.1)。
  3. 将下列代码行添加到 Visual Basic 中,如果需要替换数据源和目标数据库路径 ︰
    Dim jro As jro.JetEngineSet jro = New jro.JetEnginejro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\nwind2.mdb;Jet OLEDB:Database Password=test", _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\abbc2.mdb;Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test"					
注意:在 DAO 3.60 RepairDatabase 方法不再可用。上面的代码显示了使用 CompactDatabase 方法。此方法将替换 DAO 3.5 RepairDatabase 方法。

Visual C++ ︰ 压缩通过 ADO 访问数据库

  1. 除了 #import,Msado15.dll (MDAC2.1),来添加下面的 #import 语句,以 JRO.cpp 类生成包装类 (或者,您可以生成包装类更有效地使用 no_implementation 和 implementation_only #import 预处理器语句的属性) ︰
    #import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace 					
  2. 添加以下 (指定您自己的源和目标数据库路径) 想要压缩数据库的.cpp 文件 ︰
    ...try{   IJetEnginePtr jet(__uuidof(JetEngine));  jet->CompactDatabase( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb;Jet OLEDB:Database Password=test", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;" \ "Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test");}catch(_com_error &e) {          ::MessageBox(NULL, (LPCTSTR)e.Description( ), "", MB_OK) ;    }					
注意:Jet OLEDB:Engine 键入 = 4 只是 Jet 3.x 格式 MDB 文件。如果此值留,数据库会自动升级到 4.0 版本 (Jet OLEDB:Engine 键入 = 5)。Jet OLEDB:Engine 类型,请参阅下表的适当的值 ︰
Jet OLEDB:Engine 键入Jet x.x 格式 MDB 文件
1JET10
2JET11
3JET2X
4JET3X
5JET4X
参考
有关其他信息,请参阅 followingarticle Microsoft 知识库中相应的文章 ︰
230496 通过 OLE DB 压缩 Microsoft Access 数据库
CompactDatabase RepairDatabase 重新编制索引

Warning: This article has been translated automatically

属性

文章 ID:230501 - 上次审阅时间:04/10/2016 03:03:00 - 修订版本: 2.0

Microsoft ActiveX Data Objects 2.7

  • kbhowto kbjet kbprovider kbmt KB230501 KbMtzh
反馈