因为一般的数据库系统在修改记录的时候,并不是真正的去修改,而是新增一条记录同时把原有记录加上删除标记,同样的删除的时候也是只对待删记录作删除标记而不真正删除,这样在运行中数据库就不断变大。
access提供有压缩数据库的功能,可以去掉这些冗余记录。

解决方案 »

  1.   

    所有的数据库在update或delete时,并不真正删除修改数据,而是做删除标记,添加新纪录,当然,他们也都提供手动或自动的维护功能,真正删除做标记的数据
      

  2.   

    access本身提供压缩数据库的功能。工具-数据库实用工具-压缩和修复数据库,可以去掉以前对数据库操作留下的删除标记
      

  3.   

    “程序运行时,access库却不断变大”?
    怎么可怕,你的程序对Access做了什么操作?
    是不是不停地添加、删除?
      

  4.   

    我的方法是定期执行压缩,如果每次都对数据库进行大量的修改操作,可以每次启动或关闭程序时自动执行。
    CFile file;
        IJetEnginePtr jet(__uuidof(JetEngine));
        jet->CompactDatabase("Data Source=mydb.mdb", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mydbtemp.mdb");    
       file.Remove("mydb.mdb");
    file.Rename("mydbtemp.mdb","mydb.mdb");