MSSQLSERVERをインストールする前に、MSSQLSERVERが既にシステムにインストールされているかどうかを確認したいと思います。これはC++またはmfcでプログラム的に行う必要があります。MSSql ServerがWindows XPまたは7にインストールされているかどうかを知るには?
MSSQLServerが既にWindowsにインストールされている場合、そのサーバーのMSSQL証明書を取得する方法はありますか?
もしそうなら、これを達成する方法を説明してください。
UPDATE
私は私のシステムでのSQLServer 2005およびSQL Server 2008をインストールしようとしたが、両方のサーバがインストールされています。レジストリパスを確認しましたが、MSSQLServer 2005
の場合はSOFTWARE\Microsoft\Microsoft SQL Server\90
、MSSqlServer 2008
の場合はSOFTWARE\Microsoft\Microsoft SQL Server\100
が含まれています。MSSQLServerをインストールする前にMSSql Serverのバージョンがインストールされているかどうかを確認するにはどうすればよいですか?
EDIT
私はサイレントのC++でプログラムSQLSERVERをインストール今まで。
私は以下のコードを投稿:
SHELLEXECUTEINFO ShExecInfo;
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = NULL;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = L"D:\\Softies\\SQLEXPR.EXE";
ShExecInfo.lpParameters = L"/qn addlocal=all InstanceName=SQLEXPRESS DisableNetworkProtocols=0 SECURITYMODE=SQL SAPWD=root SQLAUTOSTART=1 SQLBROWSERAUTOSTART=1 ENABLERANU=0";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_MAXIMIZE;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
int nResult=0;
nResult = (int)ShExecInfo.hInstApp;
if(nResult >32)
cout<<"EXE executed successfully"<<endl;
else
cout<<"Reason for failure is" <<nResult<<endl;
return 0;
に採用することができますので、私は、SQL Serverのインスタンスのためのいくつかのデフォルト値をチェックするコードを持っている:私は、SQLServerのをインストールしようとしました2005とSQL Server 2008の両方のサーバーがインストールされています。レジストリパスを確認しましたが、SQL Server 2005のSOFTWARE \ Microsoft \ Microsoft SQL Server \ 90とSqlServer 2008のSOFTWARE \ Microsoft \ Microsoft SQL Server \ 100が含まれています.Sql Serverのバージョンがインストールされているかどうかチェックできますか? – karthik
@ Oleg:明らかに、私の質問の更新部分を確認してください。 – karthik
@karthik 90または100(これらはバージョンでありインスタンスではありません)をチェックする必要はありません。 - MSSQLSERVER(またはMSSQL10_50.MSSQLSERVER - バージョンに依存します) - デフォルトインスタンスの場合、またはInstanceNameインスタンスのInstanceNameを確認する必要があります。 SQLEXPRESSインスタンスを設定する場合、チェックするレジストリキーはSOFTWARE \ Microsoft \ Microsoft SQL Server \ SQLEXPRESSです。 –