ADO方式連接Access時,打開記錄集后只能讀取,不能修改


我在MFC中使用ADO操作Access數據庫.
連接上數據庫后打開記錄集,其實也就是其中的一張表Patients:
CString SQL = L"select * from Patients";
m_Ado.m_pRecordset = m_Ado.OpenRecordset(SQL);
然后我要逐條記錄修改記錄集中的某一欄的內容,以下面為例:
int number =0;
m_Ado.m_pRecordset->Move(number, vtMissing);
while (!m_Ado.m_pRecordset->adoEOF)
{
m_Ado.m_pRecordset->PutCollect("Number", (_bstr_t)(long)number);
m_Ado.m_pRecordset->MoveNext();
number++;
}

問題出在這里,當我使用PutCollect函數修改記錄集內容時,總是會報錯.但是當我僅僅將PutCollect換為GetCollect函數,即讀取記錄集中的內容時,就能夠正常運行了.
請問是什么原因啊?

4 个解决方案

#1


OpenRecordset是用Open打開的記錄集還是Excute返回的記錄集,Excute返回的是只讀的。

#2


引用 1 樓 zyq5945 的回復:
OpenRecordset是用Open打開的記錄集還是Excute返回的記錄集,Excute返回的是只讀的。


Open打開的,上面有兩行代碼是打開的過程.

#3


檢查你的打開方式。 
recordset.Open Source, ActiveConnection, CursorType, LockType, Options

注意其它幾個參數你的值是什么。

#4


m_ptrRecordset->put_Collect(_variant_t(strFieldName), value);試試這個接口,我封的ADO,這個接口是根據名稱設置值的。

m_ptrRecordset->PutCollect(_variant_t(nIndex), value);你調的這個接口是根據索引修改值的

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: