如何取得 ADO 版本號碼 你可以從檔案 MSDADC.DLL 的版本資訊中取得(MSDADC.DLL 可以在 Program Files\Common Files\System\Ole db\ 目錄下找到)。 有很多方法可以用程式取得 ADO 的版本。最簡單的方法就是假設 ADO 已 經安裝在電腦上,然後檢查 TADOConnection 的 Version 屬性(該屬性的 型態為 WideString)。例如: procedure TForm1.Button1Click(Sender: TObject); begin If ADOConnection1.Version = '2.1' Then ShowMessage('Ok'); end; 如果你不確定 ADO 是否有安裝,你應該檢查 ADO 的登錄資訊,參考下面 的範例: //----------------------------------------------------// // ADOVer - Returns the current version of ADO //----------------------------------------------------// unit ADOVer; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs, Registry, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} function GetFileVer(FileName : String) : String; var VerSize : DWORD; Zero : THandle; PBlock : Pointer; PS : Pointer; Size : UINT; begin {** Get size of Version resource **} VerSize := GetFileVersionInfoSize(PChar(FileName), Zero); If VerSize = 0 Then Begin GetFileVer := 'Not found'; Exit; End; {** Allocate memory **} GetMem(PBlock, VerSize); {** Get Version resource **} GetFileVersionInfo(PChar(FileName), 0, VerSize, PBlock); If VerQueryValue(PBlock, '\\StringFileInfo\\000004E4\\ProductVersion',PS, Size) Then GetFileVer := StrPas(PS) Else If VerQueryValue(PBlock, '\\StringFileInfo\\000004B0\\ProductVersion',PS, Size) Then GetFileVer := StrPas(PS) Else GetFileVer := '?.?'; end; function GetADOVer : String; var Reg : TRegistry; List : TStringList; I : Integer; CLSID : String; begin Reg := TRegistry.Create; List := TStringList.Create; With Reg do begin RootKey := HKEY_CLASSES_ROOT; OpenKey('', False); GetKeyNames(List); for I := 0 To List.Count - 1 do if Pos('ADODB.Connection', List[I]) <> 0 Then begin OpenKey(List[I]+'\CLSID', False); CLSID := ReadString(''); end; CloseKey; OpenKey('\CLSID\'+CLSID + '\InprocServer32', False); GetADOVer := GetFileVer(ReadString('')); end; List.Free; Reg.Free; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(GetADOVer); end; end.