用JetEngine压缩Access数据库的问题(50分)

  • 主题发起人 赤狼风云
  • 开始时间

赤狼风云

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, JRO_TLB;
// C:/Program Files/Common Files/System/ADO/msjro.dll

type
TForm1 = class(TForm)
private
procedure CompactMdb;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.CompactMdb;
const sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;';
var oJetEng: JetEngine;
 sOldMdb, sNewMdb: string;
begin
 sOldMdb := sProvider + 'Data Source=' + 'C:/Database/Test.mdb;'
  + 'Jet OLEDB:Database Password=idlehagar';
 sNewMdb := sProvider + 'Data Source=' + 'C:/Test.mdb;'
  + 'Jet OLEDB:Database Password=idlehagar';
 try
  try
   oJetEng := CoJetEngine.Create;
   oJetEng.CompactDatabase(sOldMdb, sNewMdb);
   if FileExists('C:/Test.mdb') then begin
    CopyFile('C:/Test.mdb', 'C:/Database/Test.mdb', False);
    DeleteFile('C:/Test.mdb');
  end;
  except
   on E: Exception do
    showmessage('Compact database failed');
  end
 finally
  oJetEng := nil;
 end;
end;


end.
运行时出错,提示"File not found 'JRO_TLB.dcu not found'",要如何解决。
 
好像得把那个库先导入
 
JRO_TLB这个单元好像是找不到,在什么地方?
你自己把它指定好
 
问题解决,用Import type Library将C:/Program Files/Common Files/System/ADO/msjro.dll
加入,并生成Units即可
 
多人接受答案了。
 
顶部