MFC ADO資料庫操作

2021-09-12 13:56:39 字數 2859 閱讀 4516

mfc ado資料庫操作 - 延陵小明 - csdn部落格 

內容比較亂,作為草稿,對現有的ado資料庫操作函式方法進行彙總。

小函式

m_precordset->recordcount//取得記錄數量

全域性變數

#import "msado15.dll" no_namespace rename("eof","adoeof")rename("bof","adobof") 

_connectionptr m_pconnection;

_recordsetptr m_precordset;

1.連線資料來源oninitadoconn();

//初始化ole/com庫環境

::coinitialize(null);

try;dbq=database.mdb;";

m_pconnection->open(strconnect,"","",admodeunknown);

}catch(_com_error e)

2.關閉資料庫連線

if(m_precordset!=null)

m_precordset->close();

m_pconnection->close();

::couninitialize();//釋放環境

3.獲取記錄集資料

傳入乙個_bstr_t bstrsql

(1)open方法

try//adcmdtext:bstrsql是文字.adcmdtable:bstrsql是表名

(2)execute方法

_recordsetptr execute(_bstr_t commandtex,variant* recordsaffeced,long options)

commandtext是sql命令,recordsaffeced是操作後影響的行數,options是commandtext中內容的型別

options:adcmdtext文字,adcmdtable表名,adcmdstoredproc儲存過程,adcmdunknown型別未知

>>_variant_t recordsaffected;

trycatch(_com_error e)

4.遍歷記錄集

movenext,movefirst,movelast,moveprevious;

(char *)(_bstr_t)m_precordset->getcollect("姓名");//方法一

m_sname=(cstringw)(m_padorecordset->fields->item[_variant_t("name")]->value);//方法二

while(m_precordset->adoeof==0)

5.新增資料

try6.修改資料

try7.刪除資料

m_precordset->move((long)pos,vtmissing);

m_padorecordset->delete(adaffectcurrent);

m_precordset-->update();

trycatch(_com_error *e)

if(varblob.vt==(vt_array|vt_ui1))}}

其他連線方法

開啟

m_padorecordset=null;

m_padoconnect=null;//初始化

icurrentone=-1;

//*******************************************

if(failed(::coinitialize(null)))//這句話很重要!

hresult hr=m_padoconnect.createinstance(__uuidof(connection));

if(failed(hr))

bstr_t strconnect="dsn=frdb;\

dbq=h:\\frdb.accdb;\

driverid=25;fil=ms access;maxbuffersize=2048;pagetimeout=5;";

trycatch(_com_error &e)

m_padorecordset=null;

hr=m_padorecordset.createinstance(__uuidof(recordset));

if(failed(hr))

m_padorecordset->open(_variant_t("person"),_variant_t((idispatch*)

m_padoconnect,true),adopenkeyset,adlockoptimistic,adcmdtable);

關閉if(m_padorecordset)}

if(m_padoconnect)

}::couninitialize();//關閉執行緒下的資料庫

新增資料

m_padorecordset->fields->getitem(_variant_t("name"))->value=_variant_t(m_sname);

載入資料

m_sname=(cstringw)(m_padorecordset->fields->item[_variant_t("name")]->value);

MFC ADO資料庫操作

內容比較亂,作為草稿,對現有的ado資料庫操作函式方法進行彙總。小函式m precordset recordcount 取得記錄數量 全域性變數 import msado15.dll no namespace rename eof adoeof rename bof adobof connectio...

MFC ADO資料庫操作

mfc ado資料庫操作 延陵小明 csdn部落格 內容比較亂,作為草稿,對現有的ado資料庫操作函式方法進行彙總。小函式 m precordset recordcount 取得記錄數量 全域性變數 import msado15.dll no namespace rename eof adoeof ...

MFC ADO 資料庫連線

msado15.tlh 171 error c2011 locktypeenum enum type redefinition msado15.tlh 214 error c2011 datatypeenum enum type redefinition msado15.tlh 258 error ...