Delphi+ADO+Access的问题,先谢了!(100分)

  • 主题发起人 主题发起人 mayong
  • 开始时间 开始时间
M

mayong

Unregistered / Unconfirmed
GUEST, unregistred user!
为维持记录个数,我经常用:
ADOTable1.First;
ADOTable1.Delete;
来删除记录,我发现删除数据后数据库大小没有减小,为什么?
记录确实删掉了!
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=424637
 
access 的数据..删除了..数据不一定会减小有时候发而会增大...很难解释..有谁知道原因的
详细.解释一下
 
请用数据库自带的压缩功能.
 
access数据库的删除并不是立即物理删除,而是把记录做上删除标记
所以数据库不会减小
 
access的自带压缩功能..什么..说详细点可以吗
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1268352
 
MS的问题
 
由于效率的原因,显示数据库内的记录都可能导致库变大。DBMS维护着
一些索引。
 
access 数据库在操作一段时间后都会变大,通常要进行压缩。
一种是手工压缩,另一种是通过DAO 或 ADO进行。
 
对于Access,Dbf之类文件型数据库,为了达到高效率
所以对于删除一般只是在记录上打上了删除标记,并没有真正的物理删除
所以一般需要辅助的手段才能真正清掉这些数据的
 
你也可以编成实现ACCESS的压缩
 
ACCESS数据库里的"工具"->"数据库实用工具"->"压缩和修复数据库"可以帮忙.
 
ACCESS数据库里的"工具"->"数据库实用工具"->"压缩和修复数据库"可以帮忙.
 
只是逻辑上删除,实际上还在占用空间。要压缩后空间才收回。

以前的帖子也有介绍程序里实现压缩的代码,你搜索一下。
 
如果Access数据量比较大,而且不进行压缩,会出现什么问题吗?
 
会占满磁盘空间
 
造成的碎片过多,会影响性能,甚至数据库不能正常访问。Access的数据库有这个问题
 
用Access的压缩功能压缩一下楼上的所说问题就能解决了??

是不是压缩时对那些标识为删除的数据进行了物理删除???

除此方法外,还有其他方法吗???

请赐教!!!
 
整个MSoffice都是这样!

不信?你新建一个WORD文件,输入字,保存!关闭!看一下文件的大小!
然后再打开,删除你输入的字,保存,关闭。会发现文件变大了!




 
后退
顶部