怎样经由ADO来压缩Microsoft Access数据库
时间:2007-12-23 来源:不详 作者:迈克DB
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 内容来自dedecms
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:\wind2.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_namespaceAdd 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:\wind2.mdb",
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;" \
"Jet OLEDB:Engine Type=4");
}
catch(_com_error &e)

文章评论
共有位Admini5网友发表了评论 查看完整内容