如何压缩Access数据库
来源:互联网 发布:同花顺大战略软件 编辑:程序博客网 时间:2024/05/06 05:59
Microsoft的Access继承了一些FoxBase DBF的特点,个人估计是DBF的改进,比如FoxBase说在删除数据后其实并没有真正删除,只是加上一个删除标记,在需要的时候可以用Recall命令恢复这些数据,如果想彻底删除,首先需要独占访问数据表,然后使用Pack命令来清除这些已经被删除的数据,可以称之为“压缩”数据表。
Access也是一样,如果是文本和数字等一般数据恐怕不太明显,如果是OLE对象,加入后MDB文件大小会剧增,而在删除这些数据行后文件大小并没有相应减少,日积月累这些无用的数据不光占用了大量硬盘空间,而且也会降低数据库的访问效率,这时已经没有Pack命令可用了,但可以使用Access的“压缩和修复数据库”(在“工具”菜单中)来将那些无用的数据清除掉。如果你的程序使用Access作为数据库,使用菜单命令来“压缩数据库”肯定是不太合适的,况且有时候需要自动来完成这个操作,所以我们需要把它用代码来完成,需要调用COM对象的方法,压缩后的数据库被保存为另外一个文件,再把原文件删除(其实Access自己也是这么做的),代码如下:
#include "objbase.h" //牵涉到COM对象,必须包含此头文件
AnsiString srcmdb="c://test.mdb"; //原文件名(压缩之前)
AnsiString destmdb="c://test2.mdb"; //目标文件名(压缩之后)
CoInitialize(NULL); //初始化COM对象
AnsiString src = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+srcmdb; //连接字串
AnsiString dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+destmdb;
Variant AdoObj = Variant::CreateObject("JRO.JetEngine");
AdoObj.OleProcedure("CompactDatabase",src.c_str(),dest.c_str());
AdoObj.Clear();
CoUninitialize();
DeleteFile(srcmdb) ; //删除原文件,如果不放心可以不删除留个备份,但需要改名
RenameFile(destmdb,srcmdb); //将压缩后的文件改成原文件名
- 如何压缩Access数据库
- 如何压缩Access数据库
- 怎样压缩access数据库
- [原创] Access 数据库压缩
- C#压缩Access数据库
- VB 压缩Access数据库
- VB 压缩Access数据库
- Delphi 压缩Access数据库
- 压缩修复Access数据库
- Delphi压缩access数据库
- 压缩access数据库
- 用Delphi 压缩Access数据库
- 压缩Access数据库的方法。
- 用Delphi压缩Access数据库
- VB.NET压缩ACCESS数据库
- Delphi下压缩Access数据库
- ASP压缩ACCESS数据库实用功能
- 压缩access数据库的方法。
- 堆和栈
- IT十年经典书下载
- 堆和栈
- 数学实验中遇到的问题
- 利用DWR开始在你的Web应用中使用AJAX(转载)
- 如何压缩Access数据库
- 关于javascript中parseInt函数的一个所谓的bug
- Ajax: 一个建立Web应用的新途径
- URL传输参数加密解密
- Q 语言 -- 操作符应用
- 服务器变量:$_SERVER
- 关于vtable系列之二
- IE订单的打印处理办法
- 南京导星会议总结