var 
  dao: OLEVariant; 
begin 
  dao := CreateOleObject('DAO.DBEngine.35'); 
  dao.CompactDatabase('d:\yourDatabaseName.mdb', 
'd:\yourNewCompactedDatabaseName.mdb'); 
end; 

解决方案 »

  1.   

    我的程序中有一项系统初始化的功能,就是清空所有数据表,我用的是ACCESS数据库,其中有一个表中的一个字段是自动编号的字段,初始化之后,在重新输入数据结果他还在原来的最大数上加1,我发现利用ACCESS的压缩数据库功能,能够使其还原到初始值1,我想在程序里实现,我该怎样做呢?谢谢
      

  2.   

    如下,用ADO中的JRO对象,你可以仿下面的VB代码写:
    Dim je As New JRO.JetEngine
    je.CompactDatabase _
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Northwind.mdb", _   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWD_ADOComp.mdb.mdb;" _
    & "Jet OLEDB:Encrypt Database=True"
      

  3.   

    je:=createoleobject('JRO.JetEngine');
    je.compactdatabase('d:\医院管理.mdb','d:\数据库\医院管理1.mdb');提示指定的字符串不符合OLE DB规定语句应该怎么写??
      

  4.   

    以下办法仅收藏了,没有实验,请自行实验
    /////////////////////////////////////////////Function CompactAndRepair(sOldMDB : String; sNewMDB : String) : Boolean;
    const
      sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;';
    var
      oJetEng : JetEngine;
    begin
      sOldMDB := sProvider + 'Data Source=' + sOldMDB;
      sNewMDB := sProvider + 'Data Source=' + sNewMDB;
      try
        oJetEng := CoJetEngine.Create;
        oJetEng.CompactDatabase(sOldMDB, sNewMDB);
        oJetEng := Nil;
        Result := True;
      except
        oJetEng := Nil;
        Result := False;
      end;
    end;
    示例:
    if CompactAndRepair('e:.mdb', 'e:.mdb') then
      ShowMessage('Successfully')
    else
      ShowMessage('Error…');重要注意:1- 在你的uses语句中加入JRO_TLB单元。2- 在压缩的过程中,其它人不能打开或使用数据库。3- 如果你的编译器报告没有找到JRO_TLB单元,就按以下步骤去做:a) 在Delphi IDE中选择Project - Import Type Library.b) 往下翻直到你找到“Microsoft Jet and Replication Objects 2.1 Library”.c) 点击Install按钮d) 重新编译
      

  5.   

    Microsoft Jet and Replication Objects 2.1 Library不好意思,我这里没有呀,你能不能给我发一个?
      

  6.   

    不是说了没试过嘛我这里有,msjro.dll文件,放在C:\Program Files\Common Files\System\ado\msjro.dll 这是2.5版C:\Program Files\Common Files\System\ADO\msjro.dll 这是2.6版发邮件给我,我发给你,如果文件不大的话
      

  7.   

    Sorry,忘了写信箱blueshrimp at sohu.com整个ADO目录是1.31M未压缩前,如果你是win2000,ADO2.5是自带的