使用Delphi压缩Access

                                         使用Delphi压缩Access


       
Access数据库是我们经常使用的数据库,但是Access数据库在使用的过程中,随着

时间的迁移已经数据的反复添加与删除,整个数据库软件就会变得越来越臃肿。Access

的DBMS为我们提供了修复和压缩数据库的功能,但是在使用开发基于Access的数据库

应用的过程中,最终用户的机器上不一定都有DBMS,况且用户也不一定会使用这个功

能,所以我们最好能够在程序里面加入压缩功能,这样用户使用的时候就会很方便了。

 
      下面参照网上的资料写的是一个压缩数据库的函数compressDB,要让这段代码顺利

编译,需要use 一下ComObj

 1 None.gif function compressDB(dbName:  string ): Boolean; 
 2 None.gifvar 
 3 None.gif    DaoVar: OLEVariant; 
 4 None.gifbegin 
 5 None.gif     if  DM.con1.Connected then DM.con1.Connected : =   false // 如果数据模块中的数据库连接打开,请先关闭 
 6 None.gif      try  
 7 None.gif         try  
 8 None.gif            DaoVar : =  CreateOleObject( ' DAO.DBEngine.36 ' ); 
 9 None.gif             if  FileExists( ' temp.mdb ' ) then DeleteFile( ' temp.mdb ' );  // 删除临时数据库文件"temp.mdb" 
10 None.gif
11 None.gif            DaoVar.CompactDatabase(dbName,  ' temp.mdb ' );  // 压缩"dbName" 到"temp.mdb" 
12 None.gif
13 None.gif             if  DeleteFile(dbName) then  // 删除文件"dbName" 
14 None.gif                 RenameFile( ' temp.mdb ' , dbName);  // 将"temp.mdb"改名为"dbName " 
15 None.gif             ShowMessage( ' 压缩成功 ' ); 
16 None.gif            Result : =   true
17 None.gif        except 
18 None.gif            Result : =   false
19 None.gif        end; 
20 None.gif     finally  
21 None.gif        DM.con1.Connected : =   true // 为了其它操作能够正常执行,还要打开数据库连接 
22 None.gif     end; 
23 None.gifend;
24 None.gif
 
    注意:如要要让这段据说delphi使用ADO不能压缩Access数据库,所以这里使用的

DAO对象,另外网上说还有一个第三方的数据库驱动,可以直接压缩,有兴趣的可以

Google一下,一定可以找到满意的答案的。在压缩的过程中,一定不要打开数据库,否

则会出错的。

转载于:https://www.cnblogs.com/BlueMagic/archive/2005/05/21/160176.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值