C ODBC(Open Database Connectivity)是一種通用的API,它可讓程序員訪問各種數據庫管理系統(DBMS)。在這里我們將介紹如何使用C ODBC連接MySQL數據庫。
在使用ODBC API前需要安裝MySQL ODBC驅動程序,并設置相關環境變量。假設我們已經完成了這些準備工作,接下來我們將介紹與MySQL數據庫建立連接的過程。
// 包含ODBC庫的頭文件 #include#include int main() { // ODBC連接參數 SQLCHAR* server = (SQLCHAR*)"localhost"; SQLCHAR* user = (SQLCHAR*)"root"; SQLCHAR* password = (SQLCHAR*)"password"; SQLCHAR* database = (SQLCHAR*)"test_db"; SQLCHAR* port = (SQLCHAR*)"3306"; // 定義ODBC環境和連接句柄 SQLHENV env; // 環境句柄 SQLHDBC dbc; // 連接句柄 // 初始化ODBC環境句柄 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env); SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, SQL_IS_INTEGER); // 分配ODBC連接句柄 SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc); // 建立連接 SQLDriverConnect( dbc, // 連接句柄 NULL, (SQLCHAR*)"DRIVER={MySQL ODBC 8.0 ANSI Driver};" "SERVER=localhost;" "DATABASE=test_db;" "USER=root;" "PASSWORD=password;" "PORT=3306;" "OPTION=3;", // 連接參數 SQL_NTS, // 參數長度 NULL, 0, NULL, SQL_DRIVER_COMPLETE ); // 執行SQL語句 SQLCHAR* sql = (SQLCHAR*)"SELECT * FROM user"; SQLHANDLE stmt; SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt); SQLExecDirect(stmt, sql, SQL_NTS); // 釋放資源 SQLFreeHandle(SQL_HANDLE_STMT, stmt); SQLDisconnect(dbc); SQLFreeHandle(SQL_HANDLE_DBC, dbc); SQLFreeHandle(SQL_HANDLE_ENV, env); return 0; }
在代碼中,我們首先定義了ODBC連接參數,包括數據庫名稱、用戶名、密碼、主機名和端口號等。接下來,我們初始化ODBC環境句柄,分配ODBC連接句柄,并使用SQLDriverConnect()函數建立與MySQL的連接。
在連接成功后,我們可以執行SQL語句。在上面的代碼中,我們使用SQLExecDirect()函數執行了一個簡單的SELECT語句,并使用SQLFreeHandle()函數釋放相應的資源。
如果以上步驟都沒有問題,那么我們已經成功地使用C ODBC連接MySQL數據庫了。