• 技术文章 >数据库 >mysql教程

    怎样经由ADO来压缩Microsoft Access数据库

    2016-06-07 15:12:25原创549

    HOWTO: Compacting Microsoft access Database via ADO -------------------------------------------------------------------------------- The information in this article applies to: ActiveX Data Objects (ADO), versions 2.1, 2.5, 2.6 Microsoft O

    HOWTO: Compacting Microsoft access Database via ADO

    --------------------------------------------------------------------------------
    The information in this article applies to:

    ActiveX Data Objects (ADO), versions 2.1, 2.5, 2.6
    Microsoft OLE DB PRovider for Jet, version 4.0

    --------------------------------------------------------------------------------


    SUMMARY
    Although ADO specification does not provide objects to compact or repair Microsoft Access databases, this capability can be achieved by using the ADO extension: Microsoft Jet OLE DB Provider and Replication Objects (JRO). This capability was implemented for the first time in the JET OLE DB Provider version 4.0 (Msjetoledb40.dll) and JRO version 2.1 (Msjro.dll). These DLL files are available after the install of MDAC 2.1. You can download the latest version of MDAC from the following Web site:


    Universal Data Access Web Site



    MORE INFORMATION
    To repair and compact an Access database using ADO, MDAC 2.1 or later must be properly installed on the computer. The following are the main steps to compact a Microsoft Access database using Visual Basic and Visual C++:

    Visual Basic: Compacting an Access Database via ADO
    In the Visual Basic IDE, on the Projects menu, click References.


    Add Microsoft Jet and Replication Objects X.X library, where (X.X is greater than or equal to 2.1).


    Add the following lines of code to Visual Basic, replacing the data source and destination database pathsif needed:


    Dim jro As jro.JetEngine
    Set jro = New jro.JetEngine
    jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb", _
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc2.mdb;Jet OLEDB:Engine Type=4"
    NOTE: In DAO 3.60, the RepairDatabase method is no longer available. The above code shows the use of the
    CompactDatabase method. This method replaces the DAO 3.5 RepairDatabase method.
    Visual C++: Compacting an Access Database via ADO
    Besides #import, the Msado15.dll (MDAC2.1), add the following #import statement to generate the wrapper classes for JRO to your .cpp classes (alternatively, you can generate the wrapper classes more efficiently by using the no_implementation and implementation_only attributes of the #import pre-processor statement):


    #import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace Add the following (specifying your own source and destination database paths) to the .cpp file where you
    want to compact the database:


    ...
    try
    {
    IJetEnginePtr jet(__uuidof(JetEngine));
    jet->CompactDatabase(
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb",
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;" \
    "Jet OLEDB:Engine Type=4");
    }
    catch(_com_error &e)
    {
    ::MessageBox(NULL, (LPCTSTR)e.Description( ), "", MB_OK) ;
    }
    NOTE: The Jet OLEDB:Engine Type=4 is only for Jet 3.x format MDB files. If this value is left out, the
    database is automatically upgraded to the 4.0 version (Jet OLEDB:Engine Type=5). See the following table
    for appropriate values for Jet OLEDB:Engine Type:
    Jet OLEDB:Engine Type Jet x.x Format MDB Files
    1 JET10
    2 JET11
    3 JET2X
    4 JET3X
    5 JET4X





    REFERENCES
    For additional information, please see the following article in the Microsoft Knowledge Base:

    Q230496 Compacting Microsoft Access database via OLE DB

    Additional query Words: CompactDatabase RepairDatabase reindex

    Keywords : kbADO210 kbJET kbProvider kbVBp600 kbVC kbGrpDSVCDB kbGrpDSMDAC kbDSupport kbADO250 tslic_tslic
    kbADO260
    Issue type : kbhowto
    Technology : kbAudDeveloper kbADOsearch kbADO210 kbADO250 kbADO260 kbOLEDBSearch kbOLEDBProvJet400
    kbOLEDBProvSearch

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:Cracking coding interview(3.2)堆栈实现常量复杂度的min函数 下一篇:赛门铁克Oracle启动Veritas数据中心认证

    相关文章推荐

    • mysql字段怎么判断是否存在• mysql怎么查看数据库保存在哪• mysql查询怎么区分大小写• 一起聊聊Mysql索引底层及优化• mysql存储过程怎样变量赋值

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网