软件注册站
热情软件屋

 
ADO如何对ACCESS数据库进行压缩和修理
编号: QA002596    
建立日期: 2000年2月17日 最后修改日期: 2002年12月22日
所属类别: Delphi - 数据库

Visual Basic - 数据库
   
    编程工具: vb6
    操作系统: win98
    我使用ADO对ACCESS数据库进行操作,在DAO中有数据库压缩和修理的方法,ADO如何操作?(老黑)
   
    你需要升级到VB 6SP3(QA001156 "VB中的sp2,sp3,企业版这三种各代表什么含义"),因为这个版本提供Jet 4.0支持在ADO中使用CompactDatabase。例子:
    1、在IDE中选择“工程|引用”菜单。
    2、添加Microsoft Jet and Replication Objects X.X library(这里X.X是大于或等于2.1的数)。
    3、使用如下代码:
     Dim jro As jro.JetEngine
     Set jro = New jro.JetEngine
     jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\nwind2.mdb", _
     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\abbc2.mdb;Jet OLEDB:Engine Type=4"
    

    
    Owen的意见:
    Delphi版本:
    procedure TChechkCodefrm.FormClose(Sender: TObject;
     var Action: TCloseAction);
    
     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;
    var
     s: TStringList;
     tmps: string;
    begin
     inherited;
     LocalCon.Close;
     tmps:='wg.mdb';
     if FileExists('CtwgClientcfg.ini') then
     begin
     s:=TStringList.Create;
     s.LoadFromFile('CtwgClientcfg.ini');
     if s.IndexOf('[Data Source]')>-1 then
     tmps:=s[s.IndexOf('[Data Source]')+1];
     end;
     if CompactAndRepair(tmps, 'wg1.mdb') then
     begin
     DeleteFile(tmps) ;
     RenameFile('wg1.mdb',tmps);
     end;
     LocalCon.Connected:=true;
    end;
    

    以上是我用的主个完整过程,可直接调用。
    你要在uses中加入JRO_TLB,如编译找不到该文件,则在IDE->import type library中导入Microsoft Jet and Replication Objects 2.x Library[version 2.x],重新编译,应该OK了。

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Delphi, VCL, Borland, Visual Basic, VB, 数据库, database, query

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio