如何获得用ADOConnection1连接的服务器名和当前连接的数据库名
解决方案 »
- 请问delphi里面那个控件可以读写HTML语言的?
- 关于privated,published,protected 的区分
- 不知道为什么??
- www.sunfilm.net
- 初学者----如何实现DELPHI中显示SQL中的表???
- 如何设置application.messagebox 设置默认按钮位置
- d6+ADO+ORACLE9慢的问题?
- 在什么地方可以下Delphi6新增加的帮助?在已经安装了UpdatePack 2以后如何安装Extreme Toys 里的InVokable?
- 可不可以通过在键盘上按下某个键来运行一个应用程序
- Some questions about a project
- 如何在xp下得到拨号密码
- 大家快来帮帮我啊!如何将string转换成char啊
ShowMessage(ADOConnection1.Params['Server Name']);//数据库名:
ShowMessage(ADOConnection1.Params['DataBase]);
上面的说的都要在本机已经安装SQL的情况下才可以,用这个就不管它安装没有了: NET_API_STATUS = DWORD; PServerInfo100 = ^TServerInfo100;
_SERVER_INFO_100 = record
sv100_platform_id: DWORD;
sv100_name: LPWSTR;
end;
{$EXTERNALSYM _SERVER_INFO_100}
TServerInfo100 = _SERVER_INFO_100;
SERVER_INFO_100 = _SERVER_INFO_100;
{$EXTERNALSYM SERVER_INFO_100}const
NERR_Success = 0;
MAX_PREFERRED_LENGTH = DWORD(-1);
SV_TYPE_SQLSERVER = $00000004;function NetApiBufferAllocate(ByteCount: DWORD; var Buffer: Pointer):
NET_API_STATUS; stdcall; external 'netapi32.dll' name 'NetApiBufferAllocate';function NetServerEnum(ServerName: LPCWSTR; Level: DWORD; var BufPtr: Pointer;
PrefMaxLen: DWORD; var EntriesRead: DWORD; var TotalEntries: DWORD;
ServerType: DWORD; Domain: LPCWSTR; ResumeHandle: PDWORD): NET_API_STATUS;
stdcall; external 'netapi32.dll' name 'NetServerEnum';function NetApiBufferFree(Buffer: Pointer): NET_API_STATUS; stdcall; external
'netapi32.dll' name 'NetApiBufferFree';function GetSQLServerList(out AList: TStrings; pwcServerName: PWChar = nil;
pwcDomain: PWChar = nil): Boolean;
var
NetAPIStatus: DWORD;
dwLevel: DWORD;
pReturnSvrInfo: Pointer;
dwPrefMaxLen: DWORD;
dwEntriesRead: DWORD;
dwTotalEntries: DWORD;
dwServerType: DWORD;
dwResumeHandle: PDWORD;
pCurSvrInfo: PServerInfo100;
i, j: Integer;
begin
Result := True;
try
if Trim(pwcServerName) = '' then
pwcServerName := nil; if Trim(pwcDomain) = '' then
pwcDomain := nil; dwLevel := 100;
pReturnSvrInfo := nil;
dwPrefMaxLen := MAX_PREFERRED_LENGTH;
dwEntriesRead := 0;
dwTotalEntries := 0;
dwServerType := SV_TYPE_SQLSERVER;
dwResumeHandle := nil; NetApiBufferAllocate(SizeOf(pReturnSvrInfo), pReturnSvrInfo);
try
NetAPIStatus := NetServerEnum(pwcServerName, dwLevel, pReturnSvrInfo,
dwPrefMaxLen, dwEntriesRead, dwTotalEntries, dwServerType, pwcDomain,
dwResumeHandle); if (NetAPIStatus = NERR_Success) and (pReturnSvrInfo <> nil) then
begin
pCurSvrInfo := pReturnSvrInfo; // 循环取得所有服务
i := 0;
j := dwEntriesRead;
while i < j do
begin
if pCurSvrInfo = nil then
Break; with AList do
Add(pCurSvrInfo^.sv100_name); Inc(i);
Inc(pCurSvrInfo);
end;
end;
finally
if Assigned(pReturnSvrInfo) then
NetApiBufferFree(pReturnSvrInfo);
end;
except
Result := False;
end;
end;调用:
var
i:integer;
List:TStrings;
begin
List:=TStringList.Create;
if GetSQLServerList(list) then
begin
for i:=0 to list.Count-1 do
ComboBox1.Items.Add(list[i]);
ComboBox1.ItemIndex:=0;
end;
end;
http://community.csdn.net/Expert/topic/2920/2920663.xml?temp=5.581081E-03
提示Params没有定义
ShowMessage(ADOConnection1.ConnectionString);
Data Source=后面就是了