SQLDriverConnect

適用対象:Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Azure SQL SQL Server (サポートされているすべてのバージョン)

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 値がある場合は、SQLDriverConnect に有効な 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ディザスター リカバリー」を参照してください。

SQLDriverConnect によるサービス プリンシパル名 (SPN) のサポート

SQLDDriverConnect は、プロンプトが有効な場合に ODBC ログイン ダイアログ ボックスを使用します。 これにより、プリンシパル サーバーとそのフェールオーバー パートナーの両方に対して SPN を入力できます。

SQLDriverConnect は、新しい接続文字列キーワード ServerSPNFailoverPartnerSPN を受け入れ、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)」の「サービス プリンシパル名 (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)