Конференция ".Net" » Список экземпляров MS SQL Server-ов 2005 в сети
 
  • Александр Иванов © (07.03.07 09:05) [0]
    Как можно гарантированно получить список сервер + "\" + инстанс сервера?
    Попробовал System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources() - возвращает только имена серверов, без инстансов, даже если их несколько на одном сервере.
    С помощью ODBC тоже получаю только список серверов.
    VS 2005.
  • Александр Иванов © (07.03.07 12:04) [1]
    Поправка System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources() не для всех инстансов возвращает имена.
  • clickmaker © (07.03.07 15:41) [2]
    #define LOC_SEARCH  0x0001
    #define NET_SEARCH  0x0002

    typedef int (TDBServerEnum)(USHORT, LPSTR, USHORT, USHORT*);
    typedef TDBServerEnum* PDBServerEnum;

    HINSTANCE hLib = LoadLibrary("ntwdblib.dll");
    if ( hLib)
    {
      PDBServerEnum DBServerEnum = (PDBServerEnum)GetProcAddress(hLib, "dbserverenum");
      if( DBServerEnum )
      {
         USHORT numEntries = -1;
         char *serverNames = new char[4096];
         DBServerEnum(LOC_SEARCH | NET_SEARCH, serverNames, 4096, &numEntries);
         char str[100];
         char* pName = serverNames;
         for(int i = 0; *pName != '\0'; )
         {
            char *nameStart = pName;
            for(; *pName++ != '\0'; i++){}

     strncpy_s( str, sizeof(str), nameStart, pName - nameStart );
     m_cmbServer.AddString( str );
         }
         delete[] serverNames;
      }
      FreeLibrary(hLib);
    }

  • Александр Иванов © (07.03.07 16:59) [3]
    Спасибо
  • Александр Иванов © (09.03.07 09:50) [4]
    Похоже, что этой библиотеки нет с составе SQL Express 2005.
  • clickmaker © (11.03.07 17:14) [5]
    для экспресса, говорят, можно юзать эту длл от 2000, версии 8.00.194
 
Конференция ".Net" » Список экземпляров MS SQL Server-ов 2005 в сети
Есть новые Нет новых   [134427   +34][b:0][p:0.001]