大前提:
1、 初始化環境
2、 建立連線例項
3、 建立記錄集例項
注意點:
1、addnews失敗問題:
(1)是否將cursortypeenum cursortype, locktypeenum locktype 兩值分別設為 adopendynamic, adlockoptimistic等可新增、刪除值屬性。
(2)記錄集是否開啟。
(3)最後update();
2、設定字段值錯誤:
(1)賦值超過其值範圍
(2)將cursortypeenum cursortype, locktypeenum locktype 兩值分別設為 adopendynamic, adlockoptimistic時,以下方法都能將字段值設定成功:
vtfld = m_precordset->getcollect(lpfieldname);
m_precordset->putcollect(vtindex, vtfld);
hresult hr = m_precordset->get_collect(vtindex,&vtfld);
if (failed(hr))
hresult hr = m_precordset->put_collect(vtindex, var);
if (succeeded(hr))
vtfld = m_precordset->fields->getitem(vtindex)->getvalue();
m_precordset->fields->getitem(vtindex)->putvalue(var);
hresult hr = m_precordset->fields->getitem(vtindex)->get_value(&vtfld);
if (failed(hr))
hresult hr = m_precordset->fields->getitem(vtindex)->put_value(vtfld);
if (succeeded(hr))
vtfld = m_precordset->fields->getitem(vtindex)->value;
m_precordset->fields->getitem(lpfieldname)->value = var;
備註:當cursortypeenum cursortype, locktypeenum locktype 的值分別設定為:adopenunspecified , adlockunspecified時,put_value可以設定值成功,其他的如putvalue、value都設定值失敗,另外addnew會出錯。這就是將它們全部測試一遍的原因。測試中發現putvalue是put_value 的進一步封裝,這與前者矛盾。不管怎樣,遇到離奇的錯誤,可能是我們某乙個屬性值設定的不一樣 。。。
C SQLServer欄位賦值
大前提 1 初始化環境 2 建立連線例項 3 建立記錄集例項 注意點 1 addnews失敗問題 1 是否將cursortypeenum cursortype,locktypeenum locktype 兩值分別設為 adopendynamic,adlockoptimistic等可新增 刪除值屬性。...
C SQL Server 操作筆記
首先目前我接觸的語言連線sql server都需要提供乙個連線字串,所以做過的都知道怎麼弄,實際上我大部分時候記不住,大概的格式為 var str provider sqloledb.1 password pw persist security info true user id userid in...
C SQLSERVER連線與使用
public string getconnectionstring string sqlname,string basename,string userid,string password initial catalog user id pwd sqlname,basename,userid,pas...