VC6.0 使用 MFC ODBC 類操作數據庫時,打開 CRecordset::dynaset 動態記錄集報錯「驅動程序不支持動態記錄集」。改用 CRecordset::snapshot 快照類型即可解決。
m_useBLOB.Open(CRecordset::dynaset, strSQL); // 報錯
m_useBLOB.Open(CRecordset::snapshot, strSQL); // 正常
| 特性 | dynaset (動態集) | snapshot (快照) |
|---|---|---|
| 數據可見性 | 可見他人提交的修改/插入/刪除 | 打開時刻的數據快照,不見後續變化 |
| 游標類型 | 鍵集驅動/動態游標 | 靜態游標 |
| 性能/資源 | 較高開銷,需驅動支持 | 較低開銷,廣泛兼容 |
| 可更新性 | 通常可更新 | 默認只讀,可指定 CRecordset::appendOnly 等選項 |
dynaset(需驅動/服務器支持)snapshot 穩定高效snapshot老版本驅動常不支持動態游標,改用快照類型是最快止血方案。