C SQLServer欄位賦值

2022-03-29 13:37:12 字數 1411 閱讀 3272

大前提:

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...