Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 09:25
Оценка:
Собственно, как получить сабж (как в Query Analizer'е)?
Re: Список mssql серверов в сети.
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.07.02 09:28
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Собственно, как получить сабж (как в Query Analizer'е)?



Именно серверов, а не баз? Если серверов, то



USE master
EXEC sp_linkedservers


Удачи!
Re[2]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 09:32
Оценка:
Здравствуйте Flamer, Вы писали:

F>Здравствуйте Lloyd, Вы писали:


L>>Собственно, как получить сабж (как в Query Analizer'е)?



F>Именно серверов, а не баз? Если серверов, то




F>
F>USE master
F>EXEC sp_linkedservers 
F>


F>Удачи!


Вы меня не правильно поняли. Мне нужно получить не список прилинкованных серверов, а именно список серверов в локальной сети, чтобы пользователь мог выбрать с каким сервером ему соединяться.
Re[3]: Список mssql серверов в сети.
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.07.02 09:44
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Здравствуйте Flamer, Вы писали:


F>>Здравствуйте Lloyd, Вы писали:


L>>>Собственно, как получить сабж (как в Query Analizer'е)?



F>>Именно серверов, а не баз? Если серверов, то




F>>
F>>USE master
F>>EXEC sp_linkedservers 
F>>


F>>Удачи!


L>Вы меня не правильно поняли. Мне нужно получить не список прилинкованных серверов, а именно список серверов в локальной сети, чтобы пользователь мог выбрать с каким сервером ему соединяться.



И как-же это делается в Query Analyzer Просветите убогого А то я чего-то искал, и не нашел — как же в нем получить список серверов в сети... ИМХО есть Client Network Utility и Server Network Utility, где все это ручками прописывается...

Если я неправильно понял вопрос — сорри... Еще один вариант — по умолчанию порт для MS SQL — 1433 (это если по TCP/IP). Можно опросить все машины в сети на предмет открытости этого порта.
Re[4]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 09:51
Оценка:
Здравствуйте Flamer, Вы писали:

F>Здравствуйте Lloyd, Вы писали:


F>И как-же это делается в Query Analyzer Просветите убогого А то я чего-то искал, и не нашел — как же в нем получить список серверов в сети... ИМХО есть Client Network Utility и Server Network Utility, где все это ручками прописывается...


Просвящаю:

File->Connect->...


F>Если я неправильно понял вопрос — сорри... Еще один вариант — по умолчанию порт для MS SQL — 1433 (это если по TCP/IP). Можно опросить все машины в сети на предмет открытости этого порта.



Нет уж спасибо. Этим я точно заниматься не хочу .
Тогда уж проще sqldmo попробовать попользовать.
Re[5]: Список mssql серверов в сети.
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.07.02 09:56
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Здравствуйте Flamer, Вы писали:


F>>Здравствуйте Lloyd, Вы писали:


F>>И как-же это делается в Query Analyzer Просветите убогого А то я чего-то искал, и не нашел — как же в нем получить список серверов в сети... ИМХО есть Client Network Utility и Server Network Utility, где все это ручками прописывается...


L>Просвящаю:


File->>Connect->...


F>>Если я неправильно понял вопрос — сорри... Еще один вариант — по умолчанию порт для MS SQL — 1433 (это если по TCP/IP). Можно опросить все машины в сети на предмет открытости этого порта.



L>Нет уж спасибо. Этим я точно заниматься не хочу .

L>Тогда уж проще sqldmo попробовать попользовать.


А теперь я вас просвящу

File->Connect... — это список серверов, добавленных вручную через Client Network Utility. Который находится в системной таблице master.dbo.sysservers. Вопросы?
Re[6]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 10:04
Оценка:
Здравствуйте Flamer, Вы писали:

F>Здравствуйте Lloyd, Вы писали:




F>А теперь я вас просвящу


File->>Connect... — это список серверов, добавленных вручную через Client Network Utility. Который находится в системной таблице master.dbo.sysservers. Вопросы?


Бррр.
В какой еще таблице? У меня на машине не стоит сервера, а следовательно нет базы данных мастер и уж тем более нет таблицы sysservers. Сервер -- на сервере.
Client Network Utility я не использовал и руками ничего не прописывал. И тем не менее Query Analizer находит другие SQL сервера.
Сдается мне, что кто-то из нас не прав.
Re[7]: Список mssql серверов в сети.
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.07.02 10:07
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Здравствуйте Flamer, Вы писали:


F>>Здравствуйте Lloyd, Вы писали:




F>>А теперь я вас просвящу


File->>>Connect... — это список серверов, добавленных вручную через Client Network Utility. Который находится в системной таблице master.dbo.sysservers. Вопросы?


L>Бррр.

L>В какой еще таблице? У меня на машине не стоит сервера, а следовательно нет базы данных мастер и уж тем более нет таблицы sysservers. Сервер -- на сервере.
L>Client Network Utility я не использовал и руками ничего не прописывал. И тем не менее Query Analizer находит другие SQL сервера.
L>Сдается мне, что кто-то из нас не прав.

Ага, кто-то из вас неправ Итак, прошу ответить на несколько вопросов:


Re[6]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 10:08
Оценка:
Здравствуйте Flamer, Вы писали:

F>Здравствуйте Lloyd, Вы писали:




F>А теперь я вас просвящу


File->>Connect... — это список серверов, добавленных вручную через Client Network Utility. Который находится в системной таблице master.dbo.sysservers. Вопросы?


Кстати, когда добавляешь DSN в ODBC Data Sources, то мастер Create a New Data Source to Sql Server тоже дает выбрать из всех серверов находящихся в сети.
Re[7]: Список mssql серверов в сети.
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.07.02 10:11
Оценка: -1
Здравствуйте Lloyd, Вы писали:

L>Здравствуйте Flamer, Вы писали:


F>>Здравствуйте Lloyd, Вы писали:




F>>А теперь я вас просвящу


File->>>Connect... — это список серверов, добавленных вручную через Client Network Utility. Который находится в системной таблице master.dbo.sysservers. Вопросы?


L>Кстати, когда добавляешь DSN в ODBC Data Sources, то мастер Create a New Data Source to Sql Server тоже дает выбрать из всех серверов находящихся в сети.


Кстати, этот самый мастер коннектится к локальному SQL Server и выспрашивает у него про linked servers

Сдается мне, что у вас стоит SQL Server, а вы об этом и не подозреваете
Re[8]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 10:13
Оценка:
Здравствуйте Flamer, Вы писали:

F>Здравствуйте Lloyd, Вы писали:


L>>Здравствуйте Flamer, Вы писали:


F>>>Здравствуйте Lloyd, Вы писали:




F>>>А теперь я вас просвящу


File->>>>Connect... — это список серверов, добавленных вручную через Client Network Utility. Который находится в системной таблице master.dbo.sysservers. Вопросы?


L>>Бррр.

L>>В какой еще таблице? У меня на машине не стоит сервера, а следовательно нет базы данных мастер и уж тем более нет таблицы sysservers. Сервер -- на сервере.
L>>Client Network Utility я не использовал и руками ничего не прописывал. И тем не менее Query Analizer находит другие SQL сервера.
L>>Сдается мне, что кто-то из нас не прав.

F>Ага, кто-то из вас неправ Итак, прошу ответить на несколько вопросов:



F>

1. Ответ я думаю понятен
2. Да
3. Да
4. Нет
5. Дык не надо было стрелочку в File->Connect->... стирать. Тогда было бы понятнее (... -- есть такая кнопочка)

P.S. Когда добавляешь DSN в ODBC Data Sources, то мастер Create a New Data Source to Sql Server тоже дает выбрать из всех серверов находящихся в сети.
Re[9]: Список mssql серверов в сети.
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.07.02 10:17
Оценка:
Здравствуйте Lloyd, Вы писали:

F>>Ага, кто-то из вас неправ Итак, прошу ответить на несколько вопросов:



F>>

L>1. Ответ я думаю понятен

L>2. Да
L>3. Да
L>4. Нет
L>5. Дык не надо было стрелочку в File->Connect->... стирать. Тогда было бы понятнее (... -- есть такая кнопочка)

L>P.S. Когда добавляешь DSN в ODBC Data Sources, то мастер Create a New Data Source to Sql Server тоже дает выбрать из всех серверов находящихся в сети.


Про какую стрелочку вы? То, что там по кнопочке справа выпадает окошко со списком добавленных вручную linked servers, я знаю... А вам советую для интереса зайти в Client Network Utility и удалить одну запись. И чудненьким образом этот сервер перестанет быть вам виден

По поводу DSN в ODBC Data Sources — см. мой топик выше.


В общем, RTFM...
Re[8]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 10:22
Оценка:
Здравствуйте Flamer, Вы писали:

F>Здравствуйте Lloyd, Вы писали:


F>Кстати, этот самый мастер коннектится к локальному SQL Server и выспрашивает у него про linked servers


No comments

F>Сдается мне, что у вас стоит SQL Server, а вы об этом и не подозреваете


Нет, sqlserver'а не стоит.
Re[10]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 10:26
Оценка:
Здравствуйте Flamer, Вы писали:

F>Здравствуйте Lloyd, Вы писали:


F>>>Ага, кто-то из вас неправ Итак, прошу ответить на несколько вопросов:



L>>P.S. Когда добавляешь DSN в ODBC Data Sources, то мастер Create a New Data Source to Sql Server тоже дает выбрать из всех серверов находящихся в сети.


F>Про какую стрелочку вы? То, что там по кнопочке справа выпадает окошко со списком добавленных вручную linked servers, я знаю... А вам советую для интереса зайти в Client Network Utility и удалить одну запись. И чудненьким образом этот сервер перестанет быть вам виден


Гы. Пюсто там, дружище

F>По поводу DSN в ODBC Data Sources — см. мой топик выше.


Это по поводу попыток соединится по 1433 порту?
Re[9]: Список mssql серверов в сети.
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.07.02 10:32
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Здравствуйте Flamer, Вы писали:


F>>Здравствуйте Lloyd, Вы писали:


F>>Кстати, этот самый мастер коннектится к локальному SQL Server и выспрашивает у него про linked servers


L>No comments


F>>Сдается мне, что у вас стоит SQL Server, а вы об этом и не подозреваете


L>Нет, sqlserver'а не стоит.



Тады все ясно — скорее всего, у вас общение идет через Named Pipes. Эта фича поддерживает перечисление серверов в сети. Но вот как получить этот список самому — увы... По поводу того, как получить список linked servers, я писал.

Кстати, посмотрите для интереса в Client Network Utility — a не Named Pipes ли там настроено?
Re[10]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 10:41
Оценка:
Здравствуйте Flamer, Вы писали:

F>Здравствуйте Lloyd, Вы писали:


L>>Здравствуйте Flamer, Вы писали:


F>>>Здравствуйте Lloyd, Вы писали:


F>>>Кстати, этот самый мастер коннектится к локальному SQL Server и выспрашивает у него про linked servers


L>>No comments


F>>>Сдается мне, что у вас стоит SQL Server, а вы об этом и не подозреваете


L>>Нет, sqlserver'а не стоит.



F>Тады все ясно — скорее всего, у вас общение идет через Named Pipes. Эта фича поддерживает перечисление серверов в сети. Но вот как получить этот список самому — увы... По поводу того, как получить список linked servers, я писал.


F>Кстати, посмотрите для интереса в Client Network Utility — a не Named Pipes ли там настроено?


Да, сначала идет TCP/IP, а потом Named Pipes.
Попробовал отключить.
QueryAnalizer и без них находит сервера
Re: Список mssql серверов в сети.
От: Vaso Австралия  
Дата: 12.07.02 12:56
Оценка: 4 (1)
Здравствуйте Lloyd, Вы писали:

L>Собственно, как получить сабж (как в Query Analizer'е)?


Как насчет
CoCreateInstance(CLSID_SQLOLEDB_ENUMERATOR, 
                               NULL,
                               CLSCTX_INPROC_SERVER, 
                               IID_ISourcesRowset, 
                               (void**)&pISourceRowset);
//...
pISourceRowset->GetSourcesRowset(NULL, 
                                        IID_IRowset, 
                                        0, 
                                        NULL, 
                                        (IUnknown**)&pIRowset);

и далее в таком духе?
Vaso
Re[2]: Список mssql серверов в сети.
От: Lloyd Россия  
Дата: 12.07.02 13:41
Оценка:
Здравствуйте Vaso, Вы писали:

V>Здравствуйте Lloyd, Вы писали:


L>>Собственно, как получить сабж (как в Query Analizer'е)?


V>Как насчет

V>
V>CoCreateInstance(CLSID_SQLOLEDB_ENUMERATOR, 
V>                               NULL,
V>                               CLSCTX_INPROC_SERVER, 
V>                               IID_ISourcesRowset, 
V>                               (void**)&pISourceRowset);
V>//...
pISourceRowset->>GetSourcesRowset(NULL, 
V>                                        IID_IRowset, 
V>                                        0, 
V>                                        NULL, 
V>                                        (IUnknown**)&pIRowset);
V>

V>и далее в таком духе?

Большое спаибо.
Re: Список mssql серверов в сети (ODBC).
От: Admiral Украина  
Дата: 12.07.02 14:02
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Собственно, как получить сабж (как в Query Analizer'е)?

#include <windows.h>
#include <sql.h>
#include <sqlext.h>

int main()
{
   SQLHENV henv = NULL;
   SQLHDBC hdbc = NULL;
   SQLTCHAR InStr[1024];
   SQLTCHAR BrowseResult[1024];
   SQLSMALLINT BrowseResultLen = 0;
   SQLHSTMT hstmt = NULL;

   SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);
   SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, SQL_IS_INTEGER);
   SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
   wsprintf((LPTSTR)InStr,"DRIVER={SQL Server};");
   SQLBrowseConnect(hdbc, InStr, strlen((LPSTR)InStr), BrowseResult, sizeof(BrowseResult), &BrowseResultLen);
   //В BrowseResult между фигурными скобками все, что требовалось   
   
   SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
   SQLFreeHandle(SQL_HANDLE_ENV, henv);

   return 0;
}
Re: Список mssql серверов в сети.
От: Admiral Украина  
Дата: 12.07.02 14:10
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Собственно, как получить сабж (как в Query Analizer'е)?


Еще есть функция NetServerEnum c параметром SV_TYPE_SQLSERVER.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.