資源描述:
《重要vc++使用ado開發(fā)數(shù)據(jù)庫(kù)總結(jié).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、VC++使用ADO開發(fā)ACCESS數(shù)據(jù)庫(kù)本文通過實(shí)例演示如何在VC++中使用ADO進(jìn)行ACCESS數(shù)據(jù)庫(kù)編程,并對(duì)涉及到的幾個(gè)概念進(jìn)行詳細(xì)解釋。本文不對(duì)ADO和ACCESS的基本概念進(jìn)行詳細(xì)解釋,主要包括以下內(nèi)容:第一部分ADO和ADOX到底是什么,二者的作用和區(qū)別建立數(shù)據(jù)庫(kù)第二部分ADOX創(chuàng)建ACCESS數(shù)據(jù)庫(kù)第三部分ADO創(chuàng)建ACCESS數(shù)據(jù)庫(kù)的表第四部分使用_ConnectionPtr接口開發(fā)ACCESS數(shù)據(jù)庫(kù)第五部分使用_RecordsetPtr接口開發(fā)ACCESS數(shù)據(jù)庫(kù)第一部分ADO和ADOX
2、到底是什么,二者的作用和區(qū)別ADO是Microsoft最新推出的數(shù)據(jù)庫(kù)訪問的高層軟件接口。它和Microsoft以前的數(shù)據(jù)庫(kù)訪問接口DAO、RDO相比具有更大的靈活性,使用也更方便,開發(fā)效率大為提高。ADOX是核心ADO對(duì)象的擴(kuò)展庫(kù)。它提供的附加對(duì)象可用于創(chuàng)建、修改和刪除模式對(duì)象,如表和過程。要使用ADOX,則應(yīng)建立對(duì)ADOX類型庫(kù)的引用。ADOX庫(kù)文件名為Msadox.dll。通俗地講,ADO是訪問數(shù)據(jù)庫(kù)的一種接口,可以使用它方便地進(jìn)行數(shù)據(jù)庫(kù)編程。而ADOX是微軟對(duì)ADO功能的擴(kuò)展,比如:可以ADOX
3、創(chuàng)建數(shù)據(jù)庫(kù)(而ADO沒有創(chuàng)建數(shù)據(jù)庫(kù)的功能)。第二部分ADOX創(chuàng)建ACCESS數(shù)據(jù)庫(kù)用ADOX創(chuàng)建access數(shù)據(jù)庫(kù)方法很簡(jiǎn)單,只需要?jiǎng)?chuàng)建一個(gè)Catalog對(duì)象,然后調(diào)用它的Create方法就可以了。例程ADOXCreateDatabase演示如何使用ADOX創(chuàng)建一個(gè)ACCESS數(shù)據(jù)庫(kù)。打開VC++6.0,新建一個(gè)基于對(duì)話框的工程ADOXCreateDatabase。在對(duì)話框IDD_ADOXCREATEDATABASE_DIALOG中添加一個(gè)編輯框IDC_DBNAME和一個(gè)按鈕IDC_BTN_CREATE
4、,編輯框用以輸入數(shù)據(jù)庫(kù)名稱。使用ClassWizard給編輯框創(chuàng)建一個(gè)CString變量m_dbName。雙擊IDC_BTN_CREATE按鈕,并編輯OnBtnCreate()函數(shù)如下:voidCADOXCreateDatabaseDlg::OnBtnCreate(){//使輸入到編輯框IDC_DBNAME的內(nèi)容更新到m_dbName變量中UpdateData(TRUE);CStringstr;str="d:\"+m_dbName+".mdb";//檢查該數(shù)據(jù)庫(kù)是否已經(jīng)存在,如果該數(shù)據(jù)庫(kù)已經(jīng)存在,彈出
5、消息框,返回//使用API函數(shù)PathFileExists()檢查路徑文件是否存在//請(qǐng)注意:為了使用API函數(shù)PathFileExists(),需要加入//#include"Shlwapi.h"http://#pragmacomment(lib,"shlwapi.lib")if(PathFileExists(str)){CStringstrTemp;strTemp.Format("%s已存在!",str);AfxMessageBox(strTemp);return;}//定義ADOX對(duì)象指針并初始化為NULL/
6、/用ADOX創(chuàng)建access數(shù)據(jù)庫(kù)方法很簡(jiǎn)單,//只需要新建一個(gè)Catalog對(duì)象,然后調(diào)用它的Create方法就可以了。//Catalog是ADOX的一個(gè)對(duì)象,它包含描述數(shù)據(jù)源模式目錄的集合。//在這里,您只需知道創(chuàng)建數(shù)據(jù)庫(kù)時(shí)使用這個(gè)對(duì)象就可以了。//注意用try...catch組合捕捉錯(cuò)誤_CatalogPtrm_pCatalog=NULL;CStringDBName="Provider=Microsoft.JET.OLEDB.4.0;Datasource=";DBName=DBName+str;t
7、ry{m_pCatalog.CreateInstance(__uuidof(Catalog));m_pCatalog->Create(_bstr_t((LPCTSTR)DBName));}catch(_com_error&e){AfxMessageBox(e.ErrorMessage());return;}}使用ADOX,需要引入ADOX的動(dòng)態(tài)鏈接庫(kù)msadox.dll,即在stdafx.h中加入如下語(yǔ)句:#import"C:ProgramFilesCommonFilessystemadoms
8、adox.dll"no_namespacerename("EOF","adoEOF")另外,ADOX屬于COM對(duì)象,所以要在CADOXCreateDatabaseApp::InitInstance()函數(shù)中加入:if(!AfxOleInit()){AfxMessageBox("OLE初始化出錯(cuò)!");returnFALSE;}初始化COM。好了,編譯并運(yùn)行該例程,對(duì)于編譯過程中彈出的4146號(hào)警告不要理會(huì)。在編輯框中輸入一個(gè)數(shù)據(jù)庫(kù)名稱,點(diǎn)擊