判断是否安装有DAO与Jet4

最近由于项目的需要,用到了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即可。

你可能感兴趣的:(DAO,数据库,function,String,dll,Access)