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"