配置句柄並連線到 SQL Server
包含 ODBC 頭檔 Sql.h、Sqlext.h、Sqltypes.h。
包含 SQL Server 驅動程式特定的頭檔 Odbcss.h。
使用
HandleTypeSQL_HANDLE_ENV 的呼叫 SQLAllocHandle,以初始化 ODBC 並配置環境句柄。呼叫設定為 SQL_ATTR_ODBC_VERSION 的 SQLSetEnvAttr
Attribute,並將ValuePtr設定為 SQL_OV_ODBC3,表示應用程式將使用 ODBC 3.x 格式函數調用。或者,呼叫 SQLSetEnvAttr 來設定其他環境選項,或呼叫 SQLGetEnvAttr 以取得環境選項。
使用
HandleTypeSQL_HANDLE_DBC 的呼叫 SQLAllocHandle,以配置連接句柄。或者,呼叫 SQLSetConnectAttr 來設定連線選項,或呼叫 SQLGetConnectAttr 以取得連線選項。
呼叫 SQLConnect 以使用現有的數據源連線到 SQL Server。
或
呼叫 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 的連線,並讓連接句柄可供新的連線使用。
使用
HandleTypeSQL_HANDLE_DBC呼叫 SQLFreeHandle 以釋放連線句柄。使用
HandleTypeSQL_HANDLE_ENV的呼叫SQLFreeHandle,以釋放環境句柄。
這很重要
盡可能使用 Windows 驗證。 如果 Windows 驗證無法使用,請提示使用者在運行時間輸入其認證。 避免將認證儲存在檔案中。 如果您必須保存認證,您應該使用 Win32 加密 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);