我用存储过程打开一条记录,这是成功的。然后我想用
...
m_pRecordset->Fields->GetItem(lpFieldName)->Value= vtFld //
...
来给某个字段修改赋值,但是提示“当前记录不支持更新,这可能是提供的程序的限制,也可能是选定锁定类型的限制”
那位大虾看以下问题出在那?

解决方案 »

  1.   

    没有为RecordSet指定LockType属性时,
    LockType默认为adLockReadOnly
      

  2.   

    recordset.Open Source, ActiveConnection, CursorType, LockType, OptionsCursorType 選擇性參數。此 CursorTypeEnum 值決定提供者在開啟 Recordset 時應使用的指標類型。其可以是下列其中一種常數 (有關這些設定值的定義,請參閱 CursorType 屬性)。常數 說明 
    adOpenForwardOnly (預設) 開啟一個順向資料指標。 
    AdOpenKeyset 開啟一個索引鍵集 (keyset-type) 資料指標。 
    AdOpenDynamic 開啟一個動態資料指標。 
    AdOpenStatic 開啟一個靜態資料指標。 LockType   選擇性參數。此 LockTypeEnum 值決定提供者在開啟 Recordset 時應使用何種鎖定 (同時性)。其可以是下列其中一種常數 (有關進一步資訊,請參閱 LockType 屬性)。常數 說明 
    adLockReadOnly (預設) 唯讀,資料無法變更。 
    AdLockPessimistic 悲觀性鎖定,以資料錄計 - 提供者會進行必要的動作以確保能順利編輯資料錄,其方法通常是在編輯時立即在資料源處鎖定資料錄。 
    AdLockOptimistic 樂觀性鎖定,以資料錄計 - 提供者使用樂觀性鎖定,當您呼叫 Update 方法時,僅鎖定資料錄 
    AdLockBatchOptimistic 樂觀性批次更新 - 此為批次更新模式所需,與即時更新模式相反。 
      

  3.   

    添加如下语句试一下
    pRecordSet->CursorLocation = adUseClient;