SQLDriverConnect
SQL Native Client ODBC 驅動程式會定義可取代或強化連接字串關鍵字的連接屬性。許多連接字串關鍵字都具有 SQL Native Client ODBC 驅動程式所指定的預設值。
如需 SQL Native Client ODBC 驅動程式所提供的關鍵字清單,請參閱<Using Connection String Keywords with SQL Native Client>。
如需有關 SQL Server 連接屬性和驅動程式預設行為的詳細資訊,請參閱<SQLSetConnectAttr>。
當 SQLDriverConnectDriverCompletion 參數值是 SQL_DRIVER_PROMPT、SQL_DRIVER_COMPLETE 或 SQL_DRIVER_COMPLETE_REQUIRED 時,SQL Native Client ODBC 驅動程式就會從顯示的對話方塊中擷取關鍵字值。如果此關鍵字值傳入連接字串中,而且使用者沒有在對話方塊中更改關鍵字的值,SQL Native Client ODBC 驅動程式就會使用連接字串中的值。如果連接字串沒有設定此值,而且使用者沒有在對話方塊中進行任何指派,驅動程式就會使用預設值。
當任何 DriverCompletion 值需要 (或可能需要) 顯示驅動程式的連接對話方塊時,您就必須提供有效的 WindowHandle 給 SQLDriverConnect。無效的控制代碼會傳回 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 就會重新顯示對話方塊。
範例
下列呼叫會說明 SQLDriverConnect 所需的最少資料量:
SQLDriverConnect(hdbc, hwnd,
(SQLTCHAR*) "DRIVER={SQL Native Client};" SQL_NTS, szOutConn,
MAX_CONN_OUT, &cbOutConn, SQL_DRIVER_COMPLETE);
下列連接字串會說明 DriverCompletion 參數值是 SQL_DRIVER_NOPROMPT 時所需的最少資料:
"DSN=Human Resources;UID=MyUserName;PWD=MyPassword"
"DSN=Human Resources;Trusted_Connection=yes"
"FILEDSN=HR_FDSN;UID=MyUserName;PWD=MyPassword"
"FILEDSN=HR_FDSN;Trusted_Connection=yes"
"DRIVER={SQL Native Client};SERVER=(local);UID=MyUserName;PWD=MyPassword"
"DRIVER={SQL Native Client};SERVER=(local);Trusted_Connection=yes"
請參閱
概念
ODBC API Implementation Details
其他資源
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SQLDriverConnect 函數