MFC 是 Microsoft Foundation Classes 的縮寫,這是一套 C++ 類庫,它提供了用于開發(fā) Windows 桌面應(yīng)用程序的基礎(chǔ)結(jié)構(gòu)。同時,MySQL 是一種流行的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),因此,使用 MFC 訪問 MySQL 數(shù)據(jù)庫非常方便。
在 MFC 中,我們可以選擇使用 ODBC 或者 ADO 來訪問 MySQL 數(shù)據(jù)庫。這里,我們將使用 ODBC 方式來連接 MySQL 數(shù)據(jù)庫。
// 加載 ODBC 驅(qū)動程序 if (!AfxOdbcInit()) { AfxMessageBox("Failed to load ODBC!"); return; } // 連接 MySQL 數(shù)據(jù)庫 CString strConnectionString(_T("DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=localhost;DATABASE=test;UID=root;PASSWORD=123456;OPTION=3;")); // 打開數(shù)據(jù)庫 if (m_database.Open(NULL, FALSE, FALSE, strConnectionString)) { AfxMessageBox("Connected to database!"); } else { AfxMessageBox("Fail to connect database!"); }
在上述代碼中,我們首先加載 ODBC 驅(qū)動程序,然后使用指定的連接字符串連接到 MySQL 數(shù)據(jù)庫。注意,在連接字符串中,我們指定了 MySQL ODBC 8.0 Unicode Driver 作為驅(qū)動程序,DATABASE=test 表示要訪問的數(shù)據(jù)庫名稱,UID=root 和 PASSWORD=123456 表示登錄 MySQL 數(shù)據(jù)庫的用戶名和密碼。
連接成功后,我們就可以使用 MFC 提供的類庫操作 MySQL 數(shù)據(jù)庫了。
例如,我們可以使用 CRecordset 類來執(zhí)行 SQL 查詢:
CRecordset rs(&m_database); CString strSql(_T("SELECT * FROM employee WHERE id = '1'")); // 執(zhí)行 SQL 查詢 rs.Open(CRecordset::forwardOnly, strSql); // 獲取查詢結(jié)果 while (!rs.IsEOF()) { CString strName, strCity; // 獲取查詢結(jié)果中的字段值 rs.GetFieldValue(_T("name"), strName); rs.GetFieldValue(_T("city"), strCity); // 處理查詢結(jié)果 ... // 移動到下一行 rs.MoveNext(); }
在上述代碼中,我們使用 CRecordset 類執(zhí)行了一條 SQL 查詢語句,并獲取了查詢結(jié)果。同時,通過 GetFieldValue 函數(shù)可以獲取指定字段的值,然后對查詢結(jié)果進行處理。
綜上所述,使用 MFC 訪問 MySQL 數(shù)據(jù)庫并不復(fù)雜。我們只需要加載 ODBC 驅(qū)動程序,連接到 MySQL 數(shù)據(jù)庫,然后就可以使用 MFC 提供的類庫進行 SQL 操作了。