Код:
procedure GetServerList(Strings: TStrings);
var
dmo:OleVariant;
i:Integer;
begin
Strings.Clear;
try
dmo:=CreateOleObject('SQLDMO.SQLServer');
dmo:=dmo.Application;
dmo:=dmo.ListAvailableSQLServers;
for i:=1 to dmo.Count do
if (Length(trim(dmo.Item(i))) > 0) and (CompareText(dmo.Item(i),'(LOCAL)')<>0) then
Strings.Add(AnsiUpperCase(dmo.Item(i)));
except
end;
end;
Как видно из кода, локальный сервер (т.е. установленный на машине с которой идет запрос) в список не выводится. И еще, в 2005 MS SQL DMO вроде как упразднили, поэтому код работать не будет