0
我直接使用CDatabase
和CRecordset
(沒有派生自這個類)。一個SELECT
聲明例如樣子:INSERT不派生自CDatabase或CRecordset
CDatabase db;
db.OpenEx(_T("DSN=mydatabase"));
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly, _T("SELECT id, name FROM user"));
while (!rs.IsEOF()) {
CString name; // Just for demonstration
rs.GetFieldValue(1, name);
}
是什麼力量讓這種方法的INSERT
或UPDATE
說法正確的方法是什麼?
- 沒有
CRecordset::SetFieldValue
- 我可以構建整個SQL字符串(包括值)和執行
CDatabase::ExecuteSQL
但我不喜歡這種解決方案,喜歡的PARAMATERS綁定以某種方式。
最後,用綁定字段派生的CRecordset只是建立一個SQL字符串並執行它!這就是數據庫的工作方式,爲什麼不使用它? – dwo 2013-03-13 11:55:19
@dwo:我的意圖是自己編寫代碼的每一行,並在沒有_MFC應用程序嚮導_及其自動生成的代碼的幫助下完成。 – 2013-03-13 13:00:24
@dwo:我試着[添加一個MFC ODBC使用者](http://msdn.microsoft.com/en-us/library/d83f7hdk(v = vs.100).aspx),但我得到錯誤「MFC類只能添加到MFC項目」。我正在構建一個靜態庫(文件 - >新建 - >項目 - > Win32控制檯 - >靜態庫),這似乎是此錯誤的原因。 – 2013-03-13 13:16:31