C:\Windows\SysWOW64\odbcad32.exe(32 位 ODBC 管理器)配置**系統 DSN**,而非控制面板中的 64 位版本。CRecordset 派生類(如 CUserSet),包含字段成員變量。CRecordset 字段到控件。// 刪除
m_pSet->Delete();
if (!m_pSet->IsEOF())
m_pSet->MoveNext(); // 刪除後游標指向下一條
else
m_pSet->MoveLast(); // 若刪最後一條,移到新末尾
m_pSet->Requery(); // 刷新記錄集
// 添加 m_pSet->AddNew(); m_pSet->SetFieldNull(&m_pSet->m_ID, FALSE); // 若 ID 非自增需手動賦值 GetDlgItemText(IDC_USER, m_pSet->m_username); GetDlgItemText(IDC_PASSWORD, m_pSet->m_password); m_pSet->Update(); // 寫入數據庫 m_pSet->MoveLast(); // 移到新記錄 m_pSet->Requery();
// 修改 m_pSet->Edit(); GetDlgItemText(IDC_USER, m_pSet->m_username); GetDlgItemText(IDC_PASSWORD, m_pSet->m_password); m_pSet->Update(); m_pSet->Requery();
| 函數 | 作用 |
|---|---|
AddNew() | 準備新增記錄,字段置為 NULL/默認值 |
Edit() | 將當前記錄置於編輯模式 |
Update() | 提交 AddNew/Edit 的修改到數據庫 |
Delete() | 刪除當前記錄 |
MoveNext/Prev/First/Last() | 游標導航 |
Requery() | 重新執行查詢刷新記錄集 |
SetFieldNull() | 顯式設置字段為 NULL/非 NULL |
odbcad32.exe (SysWOW64) 配置 32 位 DSN,供 VC6 (32 位) 使用。CRecordset 成員類型必須對應(如 CString 對應 varchar/text,long 對應 int)。CDatabase::BeginTrans/CommitTrans/Rollback。CRecordset::snapshot (默認, 唯讀/快照)、dynaset (可更新, 鍵集游標)、dynamic (全動態, 性能較差)。選擇 dynaset 支持增刪改。VC6 + MFC + ODBC 是經典 Windows 桌面數據庫開發棧。核心流程:配置 32 位系統 DSN → 向導生成 CRecordset 派生類 → 界面綁定字段 → 調用 AddNew/Edit/Delete/Update 實現 CRUD → Requery 刷新。掌握游標移動邏輯(刪除後 MoveNext/MoveLast)是避免「刪除後界面不更新」關鍵。