我用VC+ADO 做了个ACCESS操作小程序。但每次向ACCESS中写入数据后ACCESS文件会明显变大。删除数据后文件却不会变小。各位帮帮我。thank you!

解决方案 »

  1.   

    我也遇到过,主要就是存一些图片时我也不知道怎么解决不过压缩一下过后,access文件将会变的非常的小
      

  2.   

    可以预先使用Access的压缩功能,数据库操作照旧。
      

  3.   

    chenybin(小马)
    压缩和清理应该是两个概念吧。
      

  4.   

    access是用的结构化储存,删除数据后不会释放占用的磁盘空间。com原理上有个例子,只能另外存一个文件。或者手动导出到新的数据库中。
      

  5.   

    com原理与应用,结构化存储部分。你可以下载一个电子版的看看。不过这个问题一般都是不处理的。嘿嘿。
      

  6.   

    harry202(harry) 
        谢了。我很久以前就遇到这个问题了,问过但没有结果就没处理。现在空下来想起这事儿觉得心里不舒服所以又来问了。:)
      

  7.   

    不好意思,见笑了,不过老是出现那样的问题,其实我是认为压缩可能类似于UNIFACE里面的 
    Clear Up的功能,
      

  8.   

    to chenybin(小马)
        不好意思,是我没搞清楚.我搜到了想关的问题.解办法这样.
    #import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace try
    {
       IJetEnginePtr jet(__uuidof(JetEngine));
       jet->CompactDatabase(
             "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb", 
             "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;" \ 
             "Jet OLEDB:Engine Type=4");
    }
    catch(_com_error &e) 
    {       
       ::MessageBox(NULL, (LPCTSTR)e.Description( ), "", MB_OK) ;    
    }但确提示版本不支持.我用的是ACCESSXP怎么会不支持呢.帮帮忙.