判断是否安装有DAO与Jet4

本文提供了一种检测系统中是否已安装Microsoft Jet 4.0和DAO 3.6组件的方法,通过检查特定DLL文件的存在与否及注册表项来确定安装状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近由于项目的需要,用到了Ms Access数据库,其中需要判断目标系统中是否安装有DAO组件及Jet4组件包。在网络上查找了许久都不得正果,最后只能自己动手了。现把最近的心得记录于下:


function ADOInstalled() : Boolean;
var
  r : TRegistry;
  sFile,sPath:string;
begin

 sPath:=GetEnvironmentVariable('COMMONPROGRAMFILES'); //获取系统文件通用目录
  sFile:=sPath+'/System/Ole DB/oledb32.dll';       //对应的jet 4.0的主要Dll文件
  Result:=FileExists(sFile);
  if not Result then exit;
 
  r := TRegistry.create;
  try
    with r do //Microsoft.Jet.OLEDB.4.0
    begin
      RootKey:=HKEY_LOCAL_MACHINE;
      Result:= OpenKey('/SOFTWARE/Microsoft/Jet', false );
      if Result then
      begin
        Result:=r.KeyExists('4.0');
      end;
      CloseKey;
    end;
  finally
      r.free;
  end;
end;

function DAO36Installed() : Boolean;
var
  V36               : String;
  Reg               : TRegistry;
  sFile,sPath    :string;
Begin

 sPath:=GetEnvironmentVariable('COMMONPROGRAMFILES'); //获取系统文件通用目录

  sFile:=sPath+'/Microsoft Shared/DAO/dao360.dll';  //对应的DAO 3.6版本主要Dll文件
  Result:=FileExists(sFile);
  if not Result then exit;

  V36 := 'DAO.DBEngine.36';   //DAO.PrivateDBEngine.36
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Result:=Reg.OpenKeyReadOnly(V36);
    Reg.CloseKey;
  Finally
    Reg.Free;
  end;
end;

 

在实际使用时,只要调用DAO36Installed或ADOInstalled即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值