資源描述:
《vc中使用ado方式操作access數(shù)據(jù)庫》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、vc++中使用ado方式操作access數(shù)據(jù)庫ADO(ActiveXDataObject)是Microsoft數(shù)據(jù)庫應用程序開發(fā)的新接口,是建立在OLEDB之上的高層數(shù)據(jù)庫訪問技術,即使你對OLEDB,COM不了解也能輕松對付ADO,因為它非常簡單易用,甚至比你以往所接觸的ODBCAPI、DAO、RDO都要容易使用,并不失靈活性。本文詳細地介紹在VisualC++開發(fā)環(huán)境下如何使用ADO來進行數(shù)據(jù)庫應用程序開發(fā),并給出示例代碼。為了使讀者朋友都能測試本例提供的代碼,我們采用Access數(shù)據(jù)庫,您可以直接在我們提供的示例代碼中找到這個test.mdb。程序編
2、譯運行后的效果如圖一所示圖一、ADO操作ACESS數(shù)據(jù)庫的界面效果圖一、實現(xiàn)方法萬事開頭難,任何一種新技術對于初學者來說最重要的還是"入門",掌握其要點。讓我們來看看ADO數(shù)據(jù)庫開發(fā)的基本流程吧!它的基本步驟如下:(1)初始化COM庫,引入ADO庫定義文件(2)用Connection對象連接數(shù)據(jù)庫(3)利用建立好的連接,通過Connection、Command對象執(zhí)行SQL命令,或利用Recordset對象取得結(jié)果記錄集進行查詢、處理。(4)使用完畢后關閉連接釋放對象。下面我們將詳細介紹上述步驟并給出相關代碼。1、COM庫的初始化我們可以使用AfxOleI
3、nit()來初始化COM庫,這項工作通常在CWinApp::InitInstance()的重載函數(shù)中完成,請看如下代碼:BOOLCADOTest1App::InitInstance(){ AfxOleInit(); ......}2、用#import指令引入ADO類型庫為了引入ADO類型庫,需要在項目的stdafx.h文件中加入如下語句:#import"c:programfilescommonfilessystemadomsado15.dll"no_namespacerename("EOF","adoEOF")這一語句有何作用呢?其最終作用同我們已經(jīng)十分熟
4、悉的#include類似,編譯的時候系統(tǒng)會為我們生成msado15.tlh,ado15.tli兩個C++頭文件來定義ADO庫。需要讀者朋友注意的是:您的開發(fā)環(huán)境中msado15.dll不一定在這個目錄下,請按實際情況修改;在編譯的時候可能會出現(xiàn)如下警告,對此微軟在MSDN中作了說明,并建議我們不要理會這個警告:msado15.tlh(405):warningC4146:unaryminusoperatorappliedtounsignedtype,resultstillunsigned。3、創(chuàng)建Connection對象并連接數(shù)據(jù)庫為了首先我們需要添加一個指
5、向Connection對象的指針_ConnectionPtrm_pConnection,下面的代碼演示了如何創(chuàng)建Connection對象實例及如何連接數(shù)據(jù)庫并進行異常捕捉:BOOLCADOTest1Dlg::OnInitDialog(){ CDialog::OnInitDialog(); HRESULThr; try { hr=m_pConnection.CreateInstance("ADODB.Connection");///創(chuàng)建Connection對象 if(SUCCEEDED(hr)) { hr=m_pConnection->Open("
6、Provider=Microsoft.Jet.OLEDB.4.0; DataSource=test.mdb","","",adModeUnknown);///連接數(shù)據(jù)庫 //上面一句中連接字串中的Provider是針對ACCESS2000環(huán)境的,對于ACCESS97, //需要改為:Provider=Microsoft.Jet.OLEDB.3.51; } } catch(_com_errore)///捕捉異?! CStringerrormessage; errormessage.Format("連接數(shù)據(jù)庫失敗!rn錯誤信息:%s",e.
7、ErrorMessage()); AfxMessageBox(errormessage);///顯示錯誤信息 }在這段代碼中我們是通過Connection對象的Open方法來進行連接數(shù)據(jù)庫的,下面是該方法的原型:HRESULTConnection15::Open(_bstr_tConnectionString,_bstr_tUserID,_bstr_tPassword,longOptions);上述函數(shù)中參數(shù)ConnectionString為連接字串;參數(shù)UserID是用戶名;參數(shù)Password是登陸密碼;參數(shù)Options是連接選項,用于指定Conn
8、ection對象對數(shù)據(jù)的更新許可權,一般情況下Options可以是