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

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

ID:39914287

大?。?01.02 KB

頁(yè)數(shù):7頁(yè)

時(shí)間:2019-07-14

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

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

1、事情是這樣的,我的女朋友想要對(duì)日常生活的開(kāi)銷做個(gè)記錄,以便控制花錢的尺度。看她每日用筆頭記錄,然后和我搶電腦用,曰:要用附件中的計(jì)算器統(tǒng)計(jì)結(jié)果,每每如此,不勝其煩,就給她做了一個(gè)個(gè)人家庭記帳系統(tǒng),一勞永逸解決問(wèn)題。期間用到了ADO操作Access數(shù)據(jù)庫(kù),在網(wǎng)上找了若干關(guān)于ADO的資料結(jié)合實(shí)踐總結(jié)了一點(diǎn)使用心得如下,供有相同需求的朋友參考:附帶了那個(gè)個(gè)人記帳系統(tǒng),運(yùn)行的界面如下:VC++下使用ADO編寫數(shù)據(jù)庫(kù)程序準(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個(gè)智能指針了:_ConnectionPtr、_RecordsetPtr和_CommandPtr1.連接和關(guān)閉數(shù)據(jù)庫(kù)(1)連接例子:連接Access數(shù)據(jù)庫(kù)m_pConnection.CreateInstance(__uuidof(Connection));try{//打開(kāi)本地Access庫(kù)Demo.mdbm_pConn

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

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

5、dset->Open("SELECT*FROMDemoTable",//查詢DemoTable表中所有字段m_pConnection.GetInterfacePtr(),//獲取庫(kù)接庫(kù)的IDispatch指針adOpenDynamic,adLockOptimistic,adCmdText);}catch(_com_error*e){AfxMessageBox(e->ErrorMessage());}(2)關(guān)閉結(jié)果集m_pRecordset->Close();3.操作一個(gè)結(jié)果集(1)、遍歷(讀取)a)、用pRecordset->adoEOF來(lái)判斷數(shù)據(jù)庫(kù)指針是否已經(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)、取得一個(gè)字段的值的辦法有兩種辦法一是//表示取得第0個(gè)字段的值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、給每個(gè)字段賦值c)、調(diào)用

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

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

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