unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Comobj;type TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); var SQLServer: Variant; ServerList: Variant; i, nServers: integer; begin ListBox1.Items.Clear; try SQLServer := CreateOleObject('SQLDMO.Application'); ServerList := SQLServer.ListAvailableSQLServers; nServers := ServerList.Count; for i := 1 to nservers do ListBox1.Items.Add(ServerList.Item(i)); SQLServer := NULL; serverList := NULL; except Application.MessageBox('您当前的机器没有安装SQL Server,无法导入SQL Server服务器列表,'+#13+#10+'请直接输入SQL Server服务器名称!','信息提示',MB_OK+MB_ICONINFORMATION); end; end;end.这样就可以的
用程序执行存储过程 sp_helpserver
可以用下拉框 连接数据库然后 with adoquery1 do begin active := false; sql.clear; sql.add('exec sp_helpserver'); active := true; end; combobox1.clear while not adoquery1.eof do begin combobox1.add(adoquery1.fieldbyname('name').asstring); next; end;
-----------------------------------------------
功 能: 返回网络中SQLServer列表
参 数:
List: 需要填充的List
返回值: 成功: True,并填充List 失败 False
=================================================================}
Function GetSQLServerList(var List: Tstringlist): boolean;
var
i: integer;
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;
试试这个函数,我在网上找得。
我在win98+delphi6下运行通过....
---------------------------------------------
希望你可以验证,做出来后,发上你的程序,我也想要.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Comobj;type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
SQLServer: Variant;
ServerList: Variant;
i, nServers: integer;
begin
ListBox1.Items.Clear;
try
SQLServer := CreateOleObject('SQLDMO.Application');
ServerList := SQLServer.ListAvailableSQLServers;
nServers := ServerList.Count;
for i := 1 to nservers do
ListBox1.Items.Add(ServerList.Item(i));
SQLServer := NULL;
serverList := NULL;
except
Application.MessageBox('您当前的机器没有安装SQL Server,无法导入SQL Server服务器列表,'+#13+#10+'请直接输入SQL Server服务器名称!','信息提示',MB_OK+MB_ICONINFORMATION);
end;
end;end.这样就可以的
连接数据库然后
with adoquery1 do
begin
active := false;
sql.clear;
sql.add('exec sp_helpserver');
active := true;
end; combobox1.clear while not adoquery1.eof do
begin
combobox1.add(adoquery1.fieldbyname('name').asstring);
next;
end;