SQLDriverConnect
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
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 での接続文字列キーワードの使用を参照してください。
SQLDriverConnectDriverCompletion パラメーター値がSQL_DRIVER_PROMPT、SQL_DRIVER_COMPLETE、またはSQL_DRIVER_COMPLETE_REQUIREDされると、SQL Server Native Client ODBC ドライバーは表示されるダイアログ ボックスからキーワード値を取得します。 キーワード値が接続文字列で渡され、ユーザーがダイアログ ボックスのキーワードの値を変更しない場合、SQL Server Native Client ODBC ドライバーは接続文字列の値を使用します。 接続文字列で値が設定されていない場合、ユーザーがダイアログ ボックスで割り当てを行わないと、ドライバーは既定値を使用します。
DriverCompletion値がドライバーの接続ダイアログ ボックスの表示を必要とする (または必要になる場合がある) 場合は有効なWindowHandle を指定する必要があります。 無効なハンドルを指定すると、SQL_ERROR が返されます。
DRIVER キーワードまたは DSN キーワードを指定します。 ODBC は、これらの 2 つのキーワードが両方指定されている場合、左側に指定されているキーワードを使用し、他方を無視するように指示します。 DRIVER が指定されているか、2 つのうち一番左の値で、 SQLDriverConnectDriverCompletion パラメーター値が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 の HADR サポート
SQLDriverConnect を使用して Always On 可用性グループ クラスターに接続する方法の詳細については、「SQL Server Native Client Support for high availability, disaster Recovery」を参照してください。
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 の詳細については、「クライアント接続 (ODBC)の「Service Principal Names (SPN)」を参照してください。
例
次の呼び出しは、 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"
参照
SQLDriverConnect 関数
ODBC API 実装の詳細
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)