Access 中保存了好多信息,到达100多M,将信息删除后空间却没有释放,为什么?
该怎么解决呢还有个问题,在查询表中有 N 个字段,要查多个字段信息
select Id,Name,... from table
这样似乎太麻烦了,我想只排除不查找的字段,怎么写呢
谢谢!!

解决方案 »

  1.   

    1。压缩一下,可以用Access本身压缩,也可以用代码压缩
      

  2.   

    当然了,删除文件,但是分配的空间还在,
    不但ACCESS,就是连SQL SERVER也是如此,办法,当然是压缩了,,,,就释放了空间。
      

  3.   

    代码压缩需要导入一下Microsoft Jet and Replication Objects 2.6 Library
    Delphi Menu/Project/Import Type Libraryfunction CompactAndRepair(FFileName: string): Boolean;
    var
      oJetEng : JetEngine;
      sOldMDB, sNewMDB, sProvider: string;
    begin
      sProvider := 'Provider=Microsoft.Jet.OLEDB.4.0;' + GetProvider;
      sOldMDB := sProvider + 'Data Source=' + FFileName + ';';
      sNewMDB := sProvider + 'Data Source=' + FFileName + '.tmp' + ';';
      if FileExists(sNewMDB) then DeleteFile(sNewMDB);
      try
        oJetEng := CoJetEngine.Create;
        oJetEng.CompactDatabase(sOldMDB, sNewMDB);
        Result := DeleteFile(FFileName);
        if Result then
          Result := RenameFile(FFileName + '.tmp', FFileName);
        oJetEng := nil;
      except
        oJetEng := nil;
        Result  := False;
      end;
    end;
      

  4.   

    复杂点,再生成一个access文件,然后导入数据,删除旧的。