VC++6.0中用ADO存取Access數(shù)據(jù)庫的一點總結(jié)

VC++6.0中用ADO存取Access數(shù)據(jù)庫的一點總結(jié)

ID:39914287

大?。?01.02 KB

頁數(shù):7頁

時間:2019-07-14

VC++6.0中用ADO存取Access數(shù)據(jù)庫的一點總結(jié)_第1頁
VC++6.0中用ADO存取Access數(shù)據(jù)庫的一點總結(jié)_第2頁
VC++6.0中用ADO存取Access數(shù)據(jù)庫的一點總結(jié)_第3頁
VC++6.0中用ADO存取Access數(shù)據(jù)庫的一點總結(jié)_第4頁
VC++6.0中用ADO存取Access數(shù)據(jù)庫的一點總結(jié)_第5頁
資源描述:

《VC++6.0中用ADO存取Access數(shù)據(jù)庫的一點總結(jié)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、事情是這樣的,我的女朋友想要對日常生活的開銷做個記錄,以便控制花錢的尺度。看她每日用筆頭記錄,然后和我搶電腦用,曰:要用附件中的計算器統(tǒng)計結(jié)果,每每如此,不勝其煩,就給她做了一個個人家庭記帳系統(tǒng),一勞永逸解決問題。期間用到了ADO操作Access數(shù)據(jù)庫,在網(wǎng)上找了若干關(guān)于ADO的資料結(jié)合實踐總結(jié)了一點使用心得如下,供有相同需求的朋友參考:附帶了那個個人記帳系統(tǒng),運行的界面如下:VC++下使用ADO編寫數(shù)據(jù)庫程序準(zhǔn)備:(1)、引入ADO類#import"c:programfilescommonfilessystemadomsado15.dll"o_n

2、amespacerename("EOF","adoEOF")(2)、初始化COM在MFC中可以用AfxOleInit();非MFC環(huán)境中用:CoInitialize(NULL);CoUnInitialize();(3)#import包含后就可以用3個智能指針了:_ConnectionPtr、_RecordsetPtr和_CommandPtr1.連接和關(guān)閉數(shù)據(jù)庫(1)連接例子:連接Access數(shù)據(jù)庫m_pConnection.CreateInstance(__uuidof(Connection));try{//打開本地Access庫Demo.mdbm_pConn

3、ection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Demo.mdb","","",adModeUnknown);}catch(_com_errore){AfxMessageBox("數(shù)據(jù)庫連接失敗,確認(rèn)數(shù)據(jù)庫Demo.mdb是否在當(dāng)前路徑下!");returnFALSE;}(2)、關(guān)閉//如果數(shù)據(jù)庫連接有效if(m_pConnection->State)m_pConnection->Close();m_pConnection=NULL;(3)、設(shè)置連接時間//設(shè)置連接時間-------------

4、----------------------pConnection->put_ConnectionTimeout(long(5));2.打開一個結(jié)果集(1)打開,首先創(chuàng)建一個_RecordsetPtr實例,然后調(diào)用Open()得到一條SQL語句的執(zhí)行結(jié)果_RecordsetPtrm_pRecordset;m_pRecordset.CreateInstance(__uuidof(Recordset));//在ADO操作中建議語句中要常用try...catch()來捕獲錯誤信息,//因為它有時會經(jīng)常出現(xiàn)一些意想不到的錯誤。jingzhouxutry{m_pRecor

5、dset->Open("SELECT*FROMDemoTable",//查詢DemoTable表中所有字段m_pConnection.GetInterfacePtr(),//獲取庫接庫的IDispatch指針adOpenDynamic,adLockOptimistic,adCmdText);}catch(_com_error*e){AfxMessageBox(e->ErrorMessage());}(2)關(guān)閉結(jié)果集m_pRecordset->Close();3.操作一個結(jié)果集(1)、遍歷(讀取)a)、用pRecordset->adoEOF來判斷數(shù)據(jù)庫指針是否已經(jīng)

6、移到結(jié)果集的末尾了;m_pRecordset->BOF判斷是否在第一條記錄前面:while(!m_pRecordset->adoEOF){var=m_pRecordset->GetCollect("Name");if(var.vt!=VT_NULL)strName=(LPCSTR)_bstr_t(var);var=m_pRecordset->GetCollect("Age");if(var.vt!=VT_NULL)strAge=(LPCSTR)_bstr_t(var);m_AccessList.AddString(strName+"-->"+strAge);m_

7、pRecordset->MoveNext();}b)、取得一個字段的值的辦法有兩種辦法一是//表示取得第0個字段的值m_pRecordset->GetCollect("Name");或者m_pRecordset->GetCollect(_variant_t(long(0));二是pRecordset->get_Collect("COLUMN_NAME");或者pRecordset->get_Collect(long(index));(2)、添加a)、調(diào)用m_pRecordset->AddNew();b)、調(diào)用m_pRecordset->PutCollect();

8、給每個字段賦值c)、調(diào)用

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。