小弟在用Access数据库来开发一个单机版的管理系统时,在Win98下运行,数据刚输入不到10万条数据库的占用空间就达到1.2G,但在Win2000下输入就没有这个问题,请问各位高手高高手有什么办法解决这个问题?(最好不要用MS Access的压缩和恢复数据库来压缩数据库,这样太麻烦)

解决方案 »

  1.   

    uses comobj;procedure Tfrom.N1Click(Sender: TObject);
    var
      X: OleVariant;
      source,temp:string;
    begin
      source:=extractfilepath(application.exename)+'a.mdb';
      temp:=extractfilepath(application.exename)+'temp.mdb';
      adoconnection.Connected:=false;
      try
        X:= createoleobject('JRO.JetEngine');
        x.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+sourcefile+'','Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+tempfile+'');
        if fileExists(source) and FileExists(temp) then
        if deleteFile(source)then
          RenameFile(temp,source);
      except
        x.Release;
      end;
      adoconnection.Connected:=true;
    end;
      

  2.   

    uses comobj;procedure Tfrom.N1Click(Sender: TObject);
    var
      X: OleVariant;
      source,temp:string;
    begin
      source:=extractfilepath(application.exename)+'a.mdb';
      temp:=extractfilepath(application.exename)+'temp.mdb';
      adoconnection.Connected:=false;
      try
        X:= createoleobject('JRO.JetEngine');
        x.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+sourcefile+'','Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+tempfile+'');
        if fileExists(source) and FileExists(temp) then
        if deleteFile(source)then
          RenameFile(temp,source);
      except
        x.Release;
      end;
      adoconnection.Connected:=true;
    end;
      

  3.   

    没人用sysbase的anywhere做单机吗?