Mega Code Archive

 
Categories / Delphi / ADO Database
 

Determine ADO and DAO Versions installed

Title: Determine ADO and DAO Versions installed Question: Function to determine the highest version of DAO installed on the machine. If no DAO is installed then 0.0 is returned. Typical return values are 3.5 or 3.6 for DAO v3.5 and v3.6. Function to return the current version of ADO installed. A typical return value is 2.7. If ADO is not available then 0.0 is retuened. Both functions also support a String result function as well. function GetDaoVersion : double; function GetDaoVersionStr : string; function GetAdoVersion : double; function GetAdoVersionStr : string; Answer: // Add to uses clause uses Math,ComObj; // ====================================== // Get Highest DAO ver installed // ====================================== function GetDaoVersion : double; var sPath : string; iError,iResult : integer; rDirInfo : TSearchRec; begin iResult := 0; sPath := ExtractFileDrive(WindowsDir) + '\Program Files\Common Files\' + 'Microsoft Shared\DAO\dao*.dll'; // Loop thru to find the MAX DLL version on disk iError := FindFirst(sPath,faAnyFile,rDirInfo); while iError = 0 do begin iResult := Max(iResult,StrToIntDef(copy(rDirInfo.Name,4,3),0)); iError := FindNext(rDirInfo); if iError 0 then FindClose(rDirInfo); end; Result := (iResult / 100.0); end; function GetDaoVersionStr : string; begin Result := FormatFloat('##0.00',GetDaoVersion); end; // ===================== // Get ADO Version // ===================== function GetAdoVersion : double; var oADO: OLEVariant; begin try oADO := CreateOLEObject('adodb.connection'); Result := StrToFloat(oADO.Version); oADO := Unassigned; except Result := 0.0; end; end; function GetAdoVersionStr : string; begin Result := FormatFloat('##0.00',GetAdoVersion); end;