如何获取局域网中的sql server数据库名,和该主机名(ip或者机器名)

初心2 2003-08-21 01:11:43
如题目
...全文
280 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
NetG 2003-12-17
  • 打赏
  • 举报
回复
回复人: hch_45(んこん) ( ) 信誉:121 2003-8-21 13:17:15 得分:0



Function GetSQLServerList(var List: Tstringlist): boolean;
var
i: integer;
sRetValue: String;
SQLServer: Variant;
ServerList: Variant;
begin
Result := False;
List.Clear;
try
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList := SQLServer.ListAvailableSQLServers;
for i := 1 to Serverlist.Count do
list.Add (Serverlist.item(i));
Result := True;
Finally
SQLServer := NULL;
ServerList := NULL;
end;
end;

它返回的是主机名。也就是SQL SERVER 名




提示:没有ListAvailableSQLServers的方法?why?
wangxl430 2003-09-29
  • 打赏
  • 举报
回复
那个是执行系统存储过程
hnhb 2003-08-22
  • 打赏
  • 举报
回复
学习``````
初心2 2003-08-22
  • 打赏
  • 举报
回复
是的,不好意思的是:我不明白你这句话怎么用。。
windindance 2003-08-22
  • 打赏
  • 举报
回复
你是要获取某个SQL SERVER实例下的所有数据库吗?
使用exec sp_databases即可
初心2 2003-08-22
  • 打赏
  • 举报
回复
windindance(风舞轻扬) 的什么意思不是很清楚。
windindance 2003-08-21
  • 打赏
  • 举报
回复
exec sp_databases
初心2 2003-08-21
  • 打赏
  • 举报
回复
hch_45(んこん)
现在已经能够取得ip和主机名了,
还有一个问题没有解决,就是获取该SQL SERVER下的database。
通过什么方法呢?
hch_45 2003-08-21
  • 打赏
  • 举报
回复
function GetIPAddrByName(Name: string; var Ip: string): Boolean;
var
wsdata : TWSAData;
hostName : array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
WSAStartup ($0101, wsdata);
try
Gethostname (hostName, sizeof (hostName));
StrPCopy(hostName, Name);
hostEnt := gethostbyname (hostName);
if Assigned (hostEnt) then
begin
if Assigned (hostEnt^.h_addr_list) then
begin
addr := hostEnt^.h_addr_list^;
if Assigned (addr) then
begin
IP := Format ('%d.%d.%d.%d', [byte (addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
Result := True;
end
else
Result := False;
end
else
Result := False;
end
else
begin
Result := False;
end;
finally
WSACleanup;
end
end;


通过主机名取到IP
hch_45 2003-08-21
  • 打赏
  • 举报
回复
Function GetSQLServerList(var List: Tstringlist): boolean;
var
i: integer;
sRetValue: String;
SQLServer: Variant;
ServerList: Variant;
begin
Result := False;
List.Clear;
try
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList := SQLServer.ListAvailableSQLServers;
for i := 1 to Serverlist.Count do
list.Add (Serverlist.item(i));
Result := True;
Finally
SQLServer := NULL;
ServerList := NULL;
end;
end;

它返回的是主机名。也就是SQL SERVER 名

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧