MDB压缩方法

数据库 专栏收录该内容
3935 篇文章 1 订阅
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
 
MDB数据库 压缩方法

jimzj@21cn.com

 

虽然说 MDB数据库功能不是很强大,但时由于在WINx系统中已有缺省的驱动程序,所以不用另外像SQL,SYBASE一样安装一个管理驱动,而且携带方便,很多的小应用程序或还是采用 MDB数据库。经常操作 MDB数据时,就会经常碰到要对数据进行压缩,下面的我在网上找到和自己使用的经验写一下关于在各种环境中压缩 MDB数据库的方法,提供大家参考:

 

一、或VB中压缩

以前使用DAO时,Microsoft有提供CompactDatabaseMethod来压缩Microsoft资料库,RepairDatabaseMethod来修复损毁的MicrosoftAccess资料库。可是自从ADO出来之后,也提供了解决方法,不过有版本上的限制!限制说明如下:

ActiveXDataObjects(ADO),version2.1

MicrosoftOLEDBProviderforJet,version4.0

这是Microsoft提出的ADO的延伸功能:MicrosoftJetOLEDBProviderandReplicationObjects(JRO)这个功能在JETOLEDBProviderversion4.0(Msjetoledb40.dll)及JROversion2.1(Msjro.dll)中第一次被提出!这些必要的DLL文件在您安装了MDAC2.1之后就有了,您可以在以下的网页中下载MDAC的最新版本!UniversalDataAccessWebSite在下载之前先到VB6中检查一下,【工程】【设定引用项目】中的MicrosoftJetandReplicationObjectsX.Xlibrary如果已经是2.1以上的版本,您就可以不用下载了!在您安装了MDAC2.1或以上的版本之后,您就可以使用ADO来压缩或修复MicrosoftAccess资料库,下面的步骤告诉您如何使用CompactDatabaseMethod来压缩MicrosoftAccess资料库:1、开启一个新工程,点选功能表中的【工程】【设定引用项目】。

2、加入MicrosoftJetandReplicationObjectsX.Xlibrary,其中(X.X大于或等于2.1)。

3、在适当的地方加入以下的程序码,记得要修改datasource的内容及目地资料库的路径:

DimjroAsjro.JetEngine
Setjro=Newjro.JetEngine
jro.CompactDatabase"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d://nwind2. MDB",_'来源资料库
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d://abbc2. MDB;JetOLEDB:EngineType=4"'目的资料库

在DAO3.60之后,RepairDatabaseMethod已经无法使用了,以上的程序码显示了ADOCompactDatabaseMethod的用法,而它也取代了DAO3.5时的RepairDatabasemethod

二、DELPHI中压缩

const  SConnectionString       = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'                                +'Jet OLEDB:Database Password=%s;';

function GetTempPathFileName():string;

var

  SPath,SFile:array [0..254] of char;
begin
  GetTempPath(254,SPath);
  GetTempFileName(SPath,'~SM',0,SFile);
  result:=SFile;
  DeleteFile(result);
end;

function CompactDatabase(AFileName,APass:string):boolean;
//压缩与修复数据库,覆盖源文件
var
  STempFileName:string;
  vJE:OleVariant;
begin
  STempFileName:=GetTempPathFileName;
  try
    vJE:=CreateOleObject('JRO.JetEngine');
    vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
        format(SConnectionString,[STempFileName,APassWord])); 1
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 1
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值