Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

SQL Server   Найти похожие ветки 

 
devol   (2003-02-05 16:08) [0]

Помогите с таким вот вопросиком:
Как можно получить список доступных SQL серверов, и для каждого выбранного сервера список баз данных?


 
jocko   (2003-02-05 16:14) [1]

HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Client\ConnectTo


 
Reindeer Moss Eater   (2003-02-05 16:14) [2]

Полистай архив форума. Там есть любопытные мысли на сей счет.


 
devol   (2003-02-05 16:18) [3]

Да, но в этой ветке есть только сервера, к которым уже есть подключение через ихнии клиенты. К примеру у меня есть возможность подключиться к 3 серверам на разных машинах, но в этой ветке реестра прописан только один сервер, клиент которого установлен у меня на машине.
А мне надо список всех доступных серверов.


 
Reindeer Moss Eater   (2003-02-05 16:26) [4]

Вот почитай внимательно:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1043072138&n=1


 
jocko   (2003-02-05 16:28) [5]

тебе поможет Client Network Utility из состав пакета MS SQL
а на счет структуры почитай интересно...
http://www.olap.ru/desc/microsoft/borland_ado.asp
а еще просто через ADOConnection.OpenSchema кажется можно, но понадобится описалово, поищи в окрестности той же ссылки.


 
Reindeer Moss Eater   (2003-02-05 16:30) [6]

Если кратко и по делу, то нельзя получить список всех доступных серверов.


 
Alex-A   (2003-02-06 07:47) [7]

Используя SQLDMO

procedure GetServerList(Strings: TStrings);
var dmo:OleVariant;
i:Integer;
begin
// Очистка списка серверов
Strings.Clear;
try
// Создание объекта SQL-DMO
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;

Ну а список баз данных - подключайся к каждому серверу и sp_databases


 
Reindeer Moss Eater   (2003-02-06 08:33) [8]

Пример, приведенный Alex-A, не строит список доступных SQL серверов


 
Rashpil   (2003-02-20 14:37) [9]

procedure GetServerNames(ServerList: TStrings);
var
res: DWORD;
x: pSIArr;
xsize: Cardinal;
readcnt, allcnt: DWORD;
NetServerEnum: TNetServerEnum;
hNetApi32: THandle;
i: Integer;
begin
hNetApi32 := LoadLibrary("netapi32.dll");
if hNetApi32 = 0 then
begin
raise EInvalidImage.CreateFmt("Unable to load netapi32.dll", []);
Exit;
end;
xsize := SizeOf(TServerInfo100) * 128;
@NetServerEnum := GetProcAddress(hNetApi32, "NetServerEnum");
if @NetServerEnum = nil then
begin
if hNetApi32 <> 0 then
FreeLibrary(hNetApi32);
Exit;
end;
res := NetServerEnum(nil, 100, @x, xsize,
@readcnt, @allcnt, $00000004, nil, 0);
if res = 0 then
begin
with ServerList do
begin
BeginUpdate;
Clear;
for i := 0 to readcnt - 1 do
Add(WideCharToString(x^[i].sv100_name));
EndUpdate;
end;
end;
if hNetApi32 <> 0 then
FreeLibrary(hNetApi32);
end;


 
Reindeer Moss Eater   (2003-02-20 14:39) [10]

И этот пример не строит список доступных SQL серверов


 
Rashpil   (2003-02-20 14:49) [11]

Извините, что без комментариев, но там помоему и так все ясно.
Есстественно будет работать только на NT, W2K или XP.
Для Win98 или WinME получить список серверов НЕРЕАЛЬНО.


 
Rashpil   (2003-02-20 14:51) [12]

У меня, кстати, строит список доступных SQL серверов.


 
Reindeer Moss Eater   (2003-02-20 14:51) [13]

Для NT тоже.


 
Reindeer Moss Eater   (2003-02-20 14:52) [14]

Rashpil (20.02.03 14:51)
Попоробуй найти работающий сервер (реально доступный тебе), стоящий за маршрутизатором.


 
Reindeer Moss Eater   (2003-02-20 14:55) [15]

Если он не зарегистрирован в клиенте конечно


 
Rashpil   (2003-02-20 14:57) [16]

To Reindeer Moss Eater:
Боюсь, что дальнейший разговор на эту тему (получение ВСЕХ списка серверов в МИРЕ) - это флейм. ;)


 
Reindeer Moss Eater   (2003-02-20 15:06) [17]

Речь шла всего лишь о всех доступных.
Твой код их не показывает .



Страницы: 1 вся ветка

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
3-39189
Shrek
2003-02-19 12:54
2003.03.13
Как изменить тип поля в MySQL?


3-39158
Fligh
2003-02-20 09:51
2003.03.13
Обновление отображения у нескольких клиентов БД


4-39643
LaJolla
2003-01-22 17:08
2003.03.13
DOS в буфер обмена


8-39418
Foton
2002-11-30 10:31
2003.03.13
Построение графиков


7-39616
SPIRIT
2002-12-26 00:25
2003.03.13
Ещё один вопрос про создание виртуального CD-ROM а