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

Вниз

список доступных SQL server-ов.   Найти похожие ветки 

 
den_zab ©   (2003-09-02 16:09) [0]

кто знает как получить список доступных SQL server-ов.Скажем вывести в Listbox.


 
Reindeer Moss Eater ©   (2003-09-02 16:13) [1]

Клиент MSSQL хранит список зарегистрированных серверов в реестре.
Проще и правильнее всего читать оттуда.


 
ermserg ©   (2003-09-02 16:14) [2]

procedure GetAvailableServers (var lstServers: TStrings);
var
objDMO, objList: OleVariant;
i: Integer;
begin
lstServers.Clear;
objDMO := CreateOleObject("SQLDMO.Application");
objList := objDMO.ListAvailableSQlServers;

for i := 1 to objList.Count do
lstServers.Add(objList.Item(i));

objList := UnAssigned;
objDMO := UnAssigned;
end;


 
KSergey ©   (2003-09-02 16:16) [3]

Э, а уточнить какие именно SQL-сервера имеются в виду??
Автор, просим.


 
den_zab ©   (2003-09-02 16:18) [4]

MS SQL SERVER 2000


 
Reindeer Moss Eater ©   (2003-09-02 16:24) [5]

ermserg ©
Код написанный в [2] делает примерно тоже самое, что и в [1]


 
ermserg ©   (2003-09-02 16:34) [6]

Net. Ya ne znayu gde on ih beryot, no ne v registre. U menya v HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\Tools\Client\PrefServers 14 serverov zapisano a eta procedura pokazivayet 32. Prichom k nekotorim iz nih ya nikogda ni kakim obrazom ne connectilsa.


 
Reindeer Moss Eater ©   (2003-09-02 16:41) [7]

Тему получения списка серверов с помошью SQLDMO я исследовал в прошлом году. Было установлено, что при часть серверов находится из реестра (настроек клиента), часть серверов (незарегистрированных в клиенте) бралась с контроллеров домена.
Никогда не находились установленные и запущенные сервера, находящиеся в другой сети (реально доступные клиенту, если их зарегистрировать) и т.д.
Отсюда вывод: Если список серверов требуется для того, что бы с ними работать, проще и правильнее брать список в самом клиенте MSSQL.


 
ermserg ©   (2003-09-02 16:46) [8]


> Никогда не находились установленные и запущенные сервера,
> находящиеся в другой сети (реально доступные клиенту, если
> их зарегистрировать) и т.д.


Ya dumayu oni-bi hashlis esli ih aliasi propisani v Client Network Utility. Estesstvenno dmo ne budet drugiye seti prosmatrivat.

BOL: The ListAvailableSQLServers method returns a NameList object that enumerates network-visible instances of Microsoft® SQL Server™ 2000.


 
Reindeer Moss Eater ©   (2003-09-02 16:57) [9]

Ya dumayu oni-bi hashlis esli ih aliasi propisani v Client Network Utility.

Так о чем и речь. SQLDMO ищет в реестре у клиента + опрашивает контроллер домена.
То есть это очень частный случай. Если нет домена или есть сервера в другой сети - то о многих ничего не узнаем.
А даже если и узнаем, но нет у нас в клиенте зарегистрированного алиаса (сетевой протокол, языковые настройки, криптование и т.д.) то о какой корректной работе с сервером может идти речь?


 
ermserg ©   (2003-09-02 17:02) [10]

Nu tak i ya ob etom govoryu - zachem polzat po registru, viiskivaya servera, esli est gotovaya procedura.


 
Reindeer Moss Eater ©   (2003-09-02 17:09) [11]

Затем, что SQLDMO не найдет все сервера с которыми можно работать.


 
Nikky ©   (2003-09-02 17:12) [12]

http://www.securitylab.ru/?ID=39828


 
ermserg ©   (2003-09-02 17:16) [13]


> Reindeer Moss Eater ©


Nu tak i v registre ih ne budet.


 
Reindeer Moss Eater ©   (2003-09-02 17:19) [14]

Nu tak i v registre ih ne budet.
Смысл в том, что если в клиенте (реестре) не зарегистрирован сервер, то нормально работать с таким сервером все равно вряд ли получится.
И наоборот.
Поэтому хочешь в программе выбирать сервера из списка - получи их у клиента MSSQL (читая реестр)


 
ermserg ©   (2003-09-02 17:21) [15]


> Reindeer Moss Eater ©


Gde imenno ti predlagayesh ih tam iskat?


 
Reindeer Moss Eater ©   (2003-09-02 17:26) [16]

HKLM\Software\Microsoft\MSSQLServer\Client\ConnectTo


 
ermserg ©   (2003-09-02 17:36) [17]

Nu tak tam u tebya tolko servera kotoriye ti zaregestriroval v Client Network Utility. DMO vozvraschayet ih v ListAvailableSQlServers. Pomimo etih serverov (kstati eti mogut v danniy moment bit nedostupni), dmo vernyot vse dostupniye servera v localke.
Predlagayu zakrit temu, soglasivshis, chto oba sposoba rabochiye, i vibor togo ili inogo nuzhno delat osnovivayas na dannoy zadache.



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

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

Наверх




Память: 0.5 MB
Время: 0.036 c
7-71983
KSergey
2003-07-09 13:26
2003.09.22
Про выключение компьютера и пример из FAQ Подгрецкого


6-71805
MegaVolt
2003-07-21 15:56
2003.09.22
Почему процедура перестала выдавать имя компутера?


3-71497
www
2003-09-01 14:24
2003.09.22
Сохранение изменений в форме


1-71716
Kremen
2003-09-10 16:40
2003.09.22
Есть ли функция или оператор для сложения по модулю 2? Подскажите


1-71650
AVK2
2003-09-06 04:04
2003.09.22
2 варианта прерывания вложенного цикла. Какой правильнее?