SQLDriverConnect
SQL Server Native Client ODBC ドライバーでは、接続文字列のキーワードを置き換えたり、拡張するための接続属性を定義します。接続文字列のいくつかのキーワードには、SQL Server Native Client ODBC ドライバーが指定する既定値があります。
SQL Server Native Client ODBC ドライバーで使用できるキーワードの一覧については、「SQL Server Native Client での接続文字列キーワードの使用」を参照してください。
SQL Server の接続属性とドライバーの既定の動作の詳細については、「SQLSetConnectAttr」を参照してください。
SQL Server Native Client で有効な接続文字列キーワードの詳細については、「SQL Server Native Client での接続文字列キーワードの使用」を参照してください。
SQLDriverConnect の DriverCompletion パラメーター値が SQL_DRIVER_PROMPT、SQL_DRIVER_COMPLETE、または SQL_DRIVER_COMPLETE_REQUIRED の場合、SQL Server Native Client ODBC ドライバーは、表示されるダイアログ ボックスからキーワード値を取得します。接続文字列でキーワード値が渡され、ユーザーがダイアログ ボックスでキーワードの値を変更しなかった場合、SQL Server Native Client ODBC ドライバーは接続文字列の値を使用します。接続文字列で値が設定されていない場合、ユーザーがダイアログ ボックスで割り当てを行わないと、ドライバーは既定値を使用します。
DriverCompletion 値によってドライバーの接続ダイアログ ボックスの表示が要求されている場合、または要求できる場合、SQLDriverConnect に有効な WindowHandle を指定する必要があります。無効なハンドルを指定すると、SQL_ERROR が返されます。
DRIVER キーワードまたは DSN キーワードを指定します。ODBC は、これらの 2 つのキーワードが両方指定されている場合、左側に指定されているキーワードを使用し、他方を無視するように指示します。DRIVER が指定されているとき、または DRIVER が 2 つのキーワードの左側に指定されているときに、SQLDriverConnect の DriverCompletion パラメーター値が SQL_DRIVER_NOPROMPT の場合、SERVER キーワードに適切な値を指定する必要があります。
SQL_DRIVER_NOPROMPT が指定されているときは、ユーザー認証に関するキーワードに値が指定されている必要があります。ドライバーは、文字列 "Trusted_Connection=yes" または UID キーワードと PWD キーワードの両方が指定されていることを確認します。
DriverCompletion パラメーター値が SQL_DRIVER_NOPROMPT または SQL_DRIVER_COMPLETE_REQUIRED で、言語やデータベースを接続文字列から取得するときに、言語またはデータベースの値が無効の場合は、SQLDriverConnect は SQL_ERROR を返します。
DriverCompletion パラメーター値が SQL_DRIVER_NOPROMPT または SQL_DRIVER_COMPLETE_REQUIRED で、言語やデータベースを ODBC データ ソース定義から取得するときに、言語またはデータベースの値が無効の場合は、SQLDriverConnect は指定したユーザー ID の既定の言語または既定のデータベースを使用し、SQL_SUCCESS_WITH_INFO を返します。
DriverCompletion パラメーター値が SQL_DRIVER_COMPLETE または SQL_DRIVER_PROMPT で、言語またはデータベースが無効の場合、SQLDriverConnect はダイアログ ボックスを再表示します。
SQLDriverConnect によるサービス プリンシパル名 (SPN) のサポート
入力要求が有効になっている場合は、SQLDDriverConnect で [ODBC ログイン] ダイアログ ボックスが使用されます。これにより、プリンシパル サーバーとそのフェールオーバー パートナーの両方に対して SPN を入力できます。
SQLDriverConnect で、新しい接続文字列キーワードである ServerSPN および FailoverPartnerSPN を使用できます。また、新しい接続属性である SQL_COPT_SS_SERVER_SPN および SQL_COPT_SS_FAILOVER_PARTNER_SPN が認識されます。
接続属性の値が複数指定されている場合は、DSN の値や接続文字列の値より、プログラムによって設定された値が優先されます。DSN の値は接続文字列の値より優先されます。
接続が開いている場合、SQL Server Native Client では、SQL_COPT_SS_MUTUALLY_AUTHENTICATED および SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD が、接続を開くときに使用された認証方式に設定されます。
SPN の詳細については、「クライアント接続におけるサービス プリンシパル名 (SPN) (ODBC)」を参照してください。
例
次の呼び出しは、SQLDriverConnect に最低限必要なデータを示しています。
SQLDriverConnect(hdbc, hwnd,
(SQLTCHAR*) TEXT("DRIVER={SQL Server Native Client 10};"), SQL_NTS, szOutConn,
MAX_CONN_OUT, &cbOutConn, SQL_DRIVER_COMPLETE);
次の接続文字列は、DriverCompletion パラメーター値が SQL_DRIVER_NOPROMPT の場合に、最低限必要なデータを示しています。
"DSN=Human Resources;Trusted_Connection=yes"
"FILEDSN=HR_FDSN;Trusted_Connection=yes"
"DRIVER={SQL Server Native Client 10};SERVER=(local);Trusted_Connection=yes"