2009-07-30 14 views
0

プログラムでSqlserverインストールパスを取得する方法。C++を使用してSQLSERVERのインストールパスを取得する方法は?

我々はレジストリのために行く場合は、レジストリハイブは、そのようなw3k8とVISTAとW2K8 R2へW2K3同様

他のOSへの1つのOSから異なる場合があります。..

しかし、次のように、私はレジストリを使用していましたじんましんは問題はない問題が上昇異なる場合は、同じである場合でも、私は

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

私はインスタンスの独立した設定なしを行う(すなわち共有ツールのためにそのハイブを想定....いくつかのハードコードキーの値を与えました実行する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の一部のバージョンでこのハイブが違うのを見たことがありますか?ここで


はまた、我々はのためには、Microsoft \ Microsoft SQL Serverの\ MSSQL.1 \セットアップのHKEY_LOCAL_MACHINE \ SOFTWARE \からの値を使用して、当社のインストールスクリプトでインスタンスを意識したレジストリキー MSDN: File Locations for Default and Named Instances of SQL Server を取得する方法について説明の記事です例。ここで、MSSQL.1はインスタンス名で、インスタンス名はHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ Instance Namesにあります。

また、HKEY_LOCAL_MACHINE \ Software \ Microsoft \ MSSQLServer \ Setup SRV だからあなたは、おそらく方法はありませんが、より複雑なロジックを実装するためにsql-server-how-to-select-the-installation-path

を参照してください、私はWindows XP上では動作しませんが、それは勝つ2003上で動作 - ではないが存在する場合は、Microsoft \ MSSQLServerサービス\セットアップ\最初のチェックHKEY_LOCAL_MACHINE \ソフトウェアを、HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL.1 \ Setupをチェックしてください...これはBinn、Data、Backupなどのインスタンス認識フォルダに必要なものです。

関連する問題