当前位置: 首页 > 图文教程 > 网络编程 > ASP > 怎样经由ADO来压缩Microsoft Access数据库

ASP
ASP技巧:在Access数据库中重命名表
用ASP编程实现网络内容快速查找
比较ASP生成静态HTML文件的几种方法
ASP实例:实现邮件发送普通附件和嵌入附件
如何用ASP实现去掉三个最高分和三个最低分
ASP实例:Access为后台数据库的网站统计系统
用标签替换的方法生成静态网页
例程:用ASP判断文件地址是否有效
学ASp动态网页必备:常用的38个函数
ASP教程:初次接触学习ASP脚本程序
ASPJPEG水印中关于文字水印的帮助文档(中英文对照)
ASP例子:ASP把汉字转化为拼音的函数
ASP教程:学习ASP应用Cookies的技巧
ASP入门:认识ASP程序所使用的几种脚本语言
初学者的ASP教程:常用ASP内置函数
ASP初级教程之ASP对表单和用户输入的处理
学习ASP文件引用的方法
用ASP编写更人性化的弹出窗口程序
谈谈学习ASP动态网页制作技术的编程心得
用ASP程序实现网站在线人数统计

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 34 ::
收藏到网摘: n/a

  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 : k