配置控制代碼並連接到 SQL Server
加入 ODBC 標頭檔 Sql.h、Sqlext.h、Sqltypes.h。
包含SQL Server驅動程式特定的標頭檔 Odbcss.h。
使用
HandleType
SQL_HANDLE_ENV 的 呼叫SQLAllocHandle,以初始化 ODBC 並配置環境控制碼。呼叫 SQLSetEnvAttr ,
Attribute
並將 設定為 SQL_ATTR_ODBC_VERSION,並ValuePtr
設定為 SQL_OV_ODBC3,表示應用程式將使用 ODBC 3.x 格式函式呼叫。或者,呼叫 SQLSetEnvAttr 來設定其他環境選項,或呼叫 SQLGetEnvAttr 以取得環境選項。
使用
HandleType
SQL_HANDLE_DBC 的 呼叫SQLAllocHandle以配置連接控制碼。或者,呼叫 SQLSetConnectAttr 來設定連線選項,或呼叫 SQLGetConnectAttr 以取得連線選項。
呼叫 SQLConnect 以使用現有的資料來源連線到SQL Server。
Or
呼叫SQLDriverConnect以使用連接字串連線至SQL Server。
最小完整SQL Server連接字串有兩種形式之一:
DSN=dsn_name;Trusted_connection=yes; DRIVER={SQL Server Native Client 10.0};SERVER=server;Trusted_connection=yes;
如果連接字串不完整,
SQLDriverConnect
可以提示所需的資訊。 這是由 DriverCompletion 參數所指定的值所控制。- 或 -
以反復的方式呼叫SQLBrowseConnect多次,以建置連接字串並聯機至SQL Server。
或者,呼叫SQLGetInfo以取得SQL Server資料來源的驅動程式屬性和行為。
配置與使用陳述式。
呼叫 SQLDisconnect 以中斷與SQL Server的連線,並讓連線控制碼可供新的連線使用。
使用
HandleType
SQL_HANDLE_DBC 呼叫SQLFreeHandle以釋放連線控制碼。利用 SQL_HANDLE_ENV 的
SQLFreeHandle
呼叫HandleType
來釋放環境控制代碼。
重要
盡可能使用 Windows 驗證。 如果無法使用 Windows 驗證,請提示使用者在執行階段輸入認證。 請避免將認證儲存在檔案中。 如果您必須保存認證,則應該用 Win32 crypto API 加密這些認證。
範例
此範例示範呼叫 SQLDriverConnect
以連線到SQL Server實例,而不需要現有的 ODBC 資料來源。 將不完整的連接字串傳遞到 SQLDriverConnect
時,會使 ODBC 驅動程式提示使用者輸入遺漏的資訊。
#define MAXBUFLEN 255
SQLHENV henv = SQL_NULL_HENV;
SQLHDBC hdbc1 = SQL_NULL_HDBC;
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;
SQLCHAR ConnStrIn[MAXBUFLEN] =
"DRIVER={SQL Server Native Client 10.0};SERVER=MyServer";
SQLCHAR ConnStrOut[MAXBUFLEN];
SQLSMALLINT cbConnStrOut = 0;
// Make connection without data source. Ask that driver
// prompt if insufficient information. Driver returns
// SQL_ERROR and application prompts user
// for missing information. Window handle not needed for
// SQL_DRIVER_NOPROMPT.
retcode = SQLDriverConnect(hdbc1, // Connection handle
NULL, // Window handle
ConnStrIn, // Input connect string
SQL_NTS, // Null-terminated string
ConnStrOut, // Address of output buffer
MAXBUFLEN, // Size of output buffer
&cbConnStrOut, // Address of output length
SQL_DRIVER_PROMPT);