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 使用連接字串關鍵字>。

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 敘述如果同時指定兩個關鍵字,驅動程式會使用最左邊的關鍵字,並忽略另一個關鍵字。如果有指定 DRIVER,或者是兩個中左邊的那個關鍵字,而且 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 會針對指定的使用者識別碼使用預設語言或資料庫,並傳回 SQL_SUCCESS_WITH_INFO。

如果 DriverCompletion 參數值為 SQL_DRIVER_COMPLETE 或 SQL_DRIVER_PROMPT,而且如果語言或資料庫無效,則 SQLDriverConnect 會重新顯示對話方塊。

服務主要名稱 (SPN) 的 SQLDriverConnect 支援

啟用提示時,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) 中的服務主要名稱 (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"