新聞中心
***進(jìn)行ADO連接ACCESS時(shí)會(huì)出現(xiàn)相關(guān)提示,把LPCSTR類(lèi)型的字符串自動(dòng)轉(zhuǎn)換為CString。 除***步外,其余代碼均添加在OnInitDialog()中,在網(wǎng)上找了很多資料,但因資料繁雜,版本很多,且連接方法有很多種,所以看著不方便,。#t#

成都創(chuàng)新互聯(lián)長(zhǎng)期為近1000家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為貢覺(jué)企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站建設(shè)、成都做網(wǎng)站,貢覺(jué)網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
新建一個(gè)對(duì)話(huà)框應(yīng)用程序,建一個(gè)ACESS數(shù)據(jù)庫(kù)命名為Demo.mdb,數(shù)據(jù)表名為Demo Table,數(shù)據(jù)表中記錄的字段值分別為Name,Age..將此數(shù)據(jù)庫(kù)放入剛才建的應(yīng)用程序文件夾下。
1.在stdafx.h中加入
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2.在OnInitDialog()中初始化COM.
AfxOleInit();
3.創(chuàng)建Connection對(duì)象并連接數(shù)據(jù)庫(kù)
首先聲明一個(gè)_ConnectionPtr接口對(duì)象
_ConnectionPtr m_pConnection;
下面創(chuàng)建Connection對(duì)象實(shí)例及如何連接數(shù)據(jù)庫(kù)并進(jìn)行異常捕捉。
- m_pConnection.CreateInstance(__uuidof(Connection));
- try
- {
- // 打開(kāi)本地Access庫(kù)Demo.mdb
- m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
- }
- catch(_com_error e)
- {
- AfxMessageBox("數(shù)據(jù)庫(kù)連接失敗,確認(rèn)數(shù)據(jù)庫(kù)Demo.mdb是否在當(dāng)前路徑下!");
- return FALSE;
- }
4.利用_RecordsetPtr智能指針,來(lái)打開(kāi)庫(kù)內(nèi)數(shù)據(jù)表,并對(duì)表內(nèi)的記錄、字段等進(jìn)行各種操作。
- RecordsetPtr m_pRecordset;
- m_pRecordset.CreateInstance(__uuidof(Recordset));
- try
- {
- m_pRecordset->Open("SELECT * FROM DemoTable", // 查詢(xún)DemoTable表中所有字段
- m_pConnection.GetInterfacePtr(), // 獲取庫(kù)接庫(kù)的IDispatch指針
- adOpenDynamic,
- adLockOptimistic,
- adCmdText);
- }
- catch(_com_error *e)
- {
- AfxMessageBox(e->ErrorMessage());
- }
5.讀取表內(nèi)數(shù)據(jù)。將表內(nèi)數(shù)據(jù)讀出并顯示在編輯框中.
首先在對(duì)話(huà)框上添加兩個(gè)EDIT控件并添加變量m_name,m_age;添加代碼如下:
- variant_t var; //_variant_t是一種通用數(shù)據(jù)類(lèi)型,里面可以放不同類(lèi)型的數(shù)據(jù)。
- var = m_pRecordset->GetCollect("Name");
- if(var.vt != VT_NULL)
- m_name = (LPCSTR)_bstr_t(var);
- var = m_pRecordset->GetCollect("Age");
- if(var.vt != VT_NULL)
- m_age = (LPCSTR)_bstr_t(var);
- UpdateData(false);
名稱(chēng)欄目:如何進(jìn)行ADO連接ACCESS相關(guān)操作
標(biāo)題來(lái)源:http://www.dlmjj.cn/article/cohcosp.html


咨詢(xún)
建站咨詢(xún)
