其實可以通過TDatabase的Params來得到下面的一段程序是: 在窗體上放了一個TDatabase, 同時設置其Databasename為:AAAA 將一個TQuery的Dabasename設置為AAAA 然後通過這個TQuery的Dabasename找到相應的TDatabase 並從其Params中取得數據庫的名字procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin for I := 0 to Self.ComponentCount - 1 do begin if (Self.Components[I] is TDatabase) and (TDatabase(Self.Components[I]).DatabaseName = Query1.DatabaseName) then ShowMessage(TDatabase(Self.Components[I]).Params.Values['DATABASE NAME']); end;end; 如果TQuery是直接通過ODBC來連接的話,那就得通過注冊表來讀取信息了 其代碼如下: uses Registry;procedure TForm1.Button2Click(Sender: TObject); var Reg: TRegistry; strOpenKey: string; begin strOpenKey := '\Software\ODBC\ODBC.INI\' + Query1.DatabaseName; Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; if Reg.OpenKey(strOpenKey, False) then begin //你要的數據庫名就在這裡了 ShowMessage(Reg.ReadString('Database')); Reg.CloseKey; end; finally Reg.Free; end; end;
在窗體上放了一個TDatabase,
同時設置其Databasename為:AAAA
將一個TQuery的Dabasename設置為AAAA
然後通過這個TQuery的Dabasename找到相應的TDatabase
並從其Params中取得數據庫的名字procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to Self.ComponentCount - 1 do
begin
if (Self.Components[I] is TDatabase) and
(TDatabase(Self.Components[I]).DatabaseName =
Query1.DatabaseName) then
ShowMessage(TDatabase(Self.Components[I]).Params.Values['DATABASE NAME']);
end;end;
如果TQuery是直接通過ODBC來連接的話,那就得通過注冊表來讀取信息了
其代碼如下:
uses Registry;procedure TForm1.Button2Click(Sender: TObject);
var
Reg: TRegistry;
strOpenKey: string;
begin
strOpenKey := '\Software\ODBC\ODBC.INI\' + Query1.DatabaseName;
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey(strOpenKey, False) then
begin
//你要的數據庫名就在這裡了
ShowMessage(Reg.ReadString('Database'));
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;