判斷是否安裝有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即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章