|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Подключение к MSSQL
Доброго времени суток!
Необходимо получить и вывести список доступных в локальной сети серверов MS SQL. В самом Delphi это реализовано!! Если в adoconnection.connectionstring выбрать пункт microsoft ole db provider for sql server, диалоговое окно попросит ввести или выбрать имя сервера (причем если в сети есть запущенные sql серверы, то они будут представлены в выпадающем списке) Как это сделать самому?? В интернете есть информация про следующие варианты .NET 2.0: SqlDataSourceEnumerator SMO - SmoApplication.EnumAvailableSqlServers(False) SQLDMO (COM Interop) - ListAvailableSQLServers ODBC - SQLBrowseConnect NetBios DbLibrary, реестр Windows Но не один из этих вариантов нигде подробно не описан! Пожалуйста помогите разобраться! |
#2
|
||||
|
||||
Код:
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 вроде как упразднили, поэтому код работать не будет Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
У меня сервер 2008 и DMO не работает.
Delphi долго удивляется что это за OLE-объект и выдает ошибку! |