Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
3-39179
mib431
2003-02-20 23:31
2003.03.13
Что я не так делаю с ODBC?


7-39613
TankMan1
2002-11-14 00:04
2003.03.13
Как отменить удаление файла с винта...


14-39544
AleksandrAAA
2003-02-26 14:50
2003.03.13
штрихкоды


1-39249
Tihas
2003-02-26 23:45
2003.03.13
Вопрос оперторов...


3-39203
Nick2000
2003-02-20 19:56
2003.03.13
Поиск и сортировка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский