Как получить путь установки SQLSERVER с помощью C ++? - PullRequest
0 голосов
/ 30 июля 2009

Как получить путь установки Sqlserver программно.

Если мы перейдем к реестру, то кусты реестра могут отличаться от одной ОС к другой ОС

Например, от w2k3 до w3k8 и VISTA и W2k8 R2, как это ..

Но я использовал «Реестр» следующим образом. Но я дал некоторые vAlues с жестким кодом. Если ульи одинаковы, то нет проблем, если «По-другому» возникает проблема ....

    CRegKey cregkey;
DWORD result;
const char subkey[]="SOFTWARE\\Microsoft\\Microsoft SQL Server\\100";
const char keyval[] = "VerSpecificRootDir";
char path[ 2048 ];
result = cregkey.Open(HKEY_LOCAL_MACHINE,subkey);
    if (ERROR_SUCCESS == result)
    {
        DWORD dwCount = sizeof( path );
        result = cregkey.QueryStringValue(keyval, path, &dwCount);
          if (ERROR_SUCCESS == result) 
           {              
                cout<<" The SQLSERVER Pathis "<<path<<endl;

           }
   }                

1 Ответ

1 голос
/ 30 июля 2009

Полагаю, что куст для Независимых от экземпляра настроек (т.е. общих инструментов, которые не зависят от того, сколько экземпляров SQL Server вы используете) должен быть HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsft \ Microsoft SQL Server (номер версии) , Если вы не можете найти инструменты для версии HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ 100 (которые соответствуют SQL Server 2008), возможно, вы можете проверить версию 90 (SQL 2005) HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ 90?

Вы когда-нибудь видели, что в некоторых версиях Windows этот улей отличается?


Вот также статья, в которой объясняется, как получить экземпляры реестра с поддержкой Instance. MSDN: расположение файлов для стандартных и именованных экземпляров SQL Server В нашем сценарии установки мы используем значения из HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL.1 \ Setup, например. где MSSQL.1 - это имя экземпляра, а имена экземпляров можно найти в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ Instance Names

Также я видел несколько статей, которые рекомендуют прочитать из HKEY_LOCAL_MACHINE \ Software \ Microsoft \ MSSQLServer \ Setup Я не буду работать на Windows XP, но он работает на Win 2003 Srv См. sql-сервер-как-выбрать-путь-установки

Таким образом, у вас нет возможности, кроме как реализовать более сложную логику - сначала проверьте HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSSQLServer \ Setup, если не существует, проверьте HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL.1 \ Setup ... Но это то, что вам нужно для папок с поддержкой экземпляров, таких как Binn, Data, Backup ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...