有关Access的压缩和修复数据库功能

来源:互联网 发布:淘宝我要开店 编辑:程序博客网 时间:2024/05/16 19:48
 

用过Access数据库的朋友一定知道有个“压缩和修复数据库”的功能。

 

为什么要 “压缩和修复数据库”

首先是当然是压缩,减少文件大小。因为Access是一种文件型数据库,它所有的数据其实都是存储在一个扩展名为mdb的文件中,所以这个形式的数据库有时也称为Flat File类数据库。当然MS一贯有把名字改来改去的习惯,所以在Access 2007中新格式的Access数据库文件的扩展名已经变成了accdb了:)。随着数据库中数据的不断增加、修改和删除,数据库文件的体积是不断增长的。即使你删除了某些数据,实际上文件大小并不会减少。这是由于删除数据时,实际上只是在数据库中标记为“已删除”,并未真正删除的缘故。

其次,是修复数据库文件。实际上把数据库的所有数据放在一个磁盘文件上是风险较大的。一旦这个文件损坏,可能会造成无法打开数据库文件的麻烦。因为各种外部原因导致Access文件发生写入不一致的情况,就可能无法再打开这个Access数据库。特别是在存在多个客户端访问同一个数据库时(如一般的小型网站,使用Access数据库很常见),更容易出现“写入不一致”的情况。

 

“压缩和修复数据库”如何工作

执行此功能时,会新建一个临时Access文件,然后把需要压缩的文件中所有数据记录都导到这个临时文件中,并把原文件删除。最后,再把临时文件改名为原来文件的名称,拷回原目录。

 

Access 2007中怎么找不到“压缩和修复数据库”功能了

相较之前的版本,Office 2007中对程序界面和功能分类作了较大的调整,以此希望可以让用户更容易地找到最常用的功能,改善使用体验。确实,这样的改进值得肯定。一开始可能不太习惯,但用了一段时间就会感觉到确实是方便一些。但对于像“压缩和修复数据库”这样的功能,一下子要找到还真不容易。之前的Access 2000/XP/2003中,这一功能都是在工具菜单项中,但是Access 2007中需要这样操作:

单击“Office 按钮” ,指向“管理”,然后在“管理此数据库”下单击“压缩和修复数据库”。

http://office.microsoft.com/client/helppreview.aspx?AssetID=HA102355832052&QueryID=3f9Dvocsl&respos=1&rt=2&ns=MSACCESS&lcid=2052&pid=CH100948232052#3

 

呵呵,要是不查帮助,是要找一会呢。

 

怎样在Access程序之外进行“压缩和修复数据库”

可以通MDAC中的“JRO.JetEngine”对象来对Access文件进行压缩,具体的方法名为CompactDatabase

如果需要界面,当然可以自己用Delphi/VB等画一个,然后调用此方法即可。

甚至微软官方在2000年左右也发布过一个这样的工具,称为“Jet Database Compact Utility”。我见过的一个是4.0版本的(和Jet版本一致),除了压缩功能外,还有一些额外的选项。

 

原创粉丝点击