Delphi 收缩Access数据库

      我自己在做一个自己用的个人理财系统时,由于想方便程序,所以使用了Acess数据库,使用方便。本是没什么事,做完了之后就突然想到我之前做的一些使用SQL数据库的程序时,偶尔删除大量数据时要收缩下数据库,我就自己没事收缩下Acess数据库,没想到居然小了一半,这还只是我测试时使用的数据,如果长此以往那空间不是浪费太大了。

      之后我就去找了好多的用命令收缩数据库的方法,但是找了好多,大体都是两种,一种是CompactDatabase(原数据库文件,新数据库文件,原密码,新密码,还有一个参数不太懂)。但是这种一直提示无效的参数数目。

      另一种就是我今天刚测试成功的。

var
  strS:string;//原数据库
  strT:string;//收缩完的数据库
  jro:OleVariant;
begin
  jro:=createoleobject( 'jro.jetengine');
    strS:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/11.mdb';
    strT:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/22.mdb';
    jro.CompactDatabase(strS,strT);
end;

不过在这之前我也有测试过类似的方法,但是却提示‘找不到可安装的ISAM’。后来找下类似的问题才知道是由于空格的原因,因为是在网上复制的,所以里面的空格会有问题,主要是像Data Source这种本身单词有空格的,必须保证他们蹭的空格只有一个英文下的空格。

还有的网上的strT里写的是:strT:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/22.mdb;Jet OLEDB:Engine Type=4';,但是这却会提示版本不符的提示,可能是我的版本太低了,所以我把后面那版本的去掉。另外的数据库的连接问题和数据库文件的覆盖网上有很多可以参考,我就不在多这提了。

希望能给读者方便

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值