VC與ADO數(shù)據(jù)庫(kù)操作1_第1頁(yè)
VC與ADO數(shù)據(jù)庫(kù)操作1_第2頁(yè)
VC與ADO數(shù)據(jù)庫(kù)操作1_第3頁(yè)
VC與ADO數(shù)據(jù)庫(kù)操作1_第4頁(yè)
VC與ADO數(shù)據(jù)庫(kù)操作1_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

VC與ADO數(shù)據(jù)庫(kù)操作1VC與ADO數(shù)據(jù)庫(kù)操作1VC與ADO數(shù)據(jù)庫(kù)操作1VC與ADO數(shù)據(jù)庫(kù)操作1編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:VC與ADO數(shù)據(jù)庫(kù)操作學(xué)研部的同志們,大家好!想開(kāi)一次學(xué)習(xí)會(huì),實(shí)習(xí)時(shí)間沖突了,只好把文檔發(fā)給大家看了。重點(diǎn)推薦李振龍的BMP讀圖教程!尤其是大三GIS班的同志,注意了,可能實(shí)習(xí)用得上的!ADO簡(jiǎn)介

ADO(ActiveXDataObject)是Microsoft數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)的新接口,是建立在OLEDB之上的高層數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),請(qǐng)不必為此擔(dān)心,即使你對(duì)OLEDB,COM不了解也能輕松對(duì)付ADO,因?yàn)樗浅:?jiǎn)單易用,甚至比你以往所接觸的ODBCAPI、DAO都要容易使用,【1】為工程做準(zhǔn)備建一個(gè)基于對(duì)話框的工程,名字叫PlaceName。加入一個(gè)ListControl控件,ID改成IDC_RESULT,順便點(diǎn)一下Styles選項(xiàng)卡,把View改成Report,你可以看到對(duì)話框里的ListControl控件的樣子已經(jīng)變成帶字段名的報(bào)表格式了。右擊它,用ClassWizard添加成員變量,名字為m_LisCtrlResult。按照上面的程序界面,加入一個(gè)編輯框(輸入SQL語(yǔ)句用的),同上面添加m_LisCtrlResult成員變量一樣,加入一個(gè)CString變量,名字為m_SqlText,還有一個(gè)“查詢”按鈕,把它叫為Query,雙擊它一下,VC會(huì)自動(dòng)為它加入消息和函數(shù)的,名字也叫OnQuery(),等一下我們就用著那個(gè)函數(shù)的??吹轿覀僑paceSoft的標(biāo)志不把你的照片換成BMP格式的,放上去吧!定義一下要用著的變量:classCPlaceNameDlg:publicCDialog{....}【3】用#import指令引入ADO類型庫(kù)

我們?cè)谥屑尤肴缦抡Z(yǔ)句:這個(gè)文件哪里可以找到你可以在FileView中的HeaderFiles里找到)#import"c:\programfiles\commonfiles\system\ado\"no_namespacerename("EOF","adoEOF")這一語(yǔ)句有何作用呢其最終作用同我們熟悉的#include類似,編譯的時(shí)候系統(tǒng)會(huì)為我們生成,兩個(gè)C++頭文件來(lái)定義ADO庫(kù)。

幾點(diǎn)說(shuō)明:

(1)您的環(huán)境中不一定在這個(gè)目錄下,請(qǐng)按實(shí)際情況修改

(2)在編譯的時(shí)候肯能會(huì)出現(xiàn)如下警告,對(duì)此微軟在MSDN中作了說(shuō)明,并建議我們不要理會(huì)這個(gè)警告。

(405):warningC4146:unaryminusoperatorappliedtounsignedtype,resultstillunsigned【4】創(chuàng)建Connection對(duì)象并連接數(shù)據(jù)庫(kù)

首先我們需要添加一個(gè)指向Connection對(duì)象的指針,就是在里加入下面一句,定義它:

_ConnectionPtrm_pConnection;“->”VC就會(huì)提醒你有什么東西能用的。文檔里沒(méi)說(shuō)明白的就看原代碼吧,不要錢(qián)的!希望繼續(xù)關(guān)注SpaceSoft!注意Connection對(duì)象的Open方法中的連接字符串參數(shù)必須是BSTR或_bstr_t類型。另外,本例是直接通過(guò)OLEDBProvider建立連接,所以無(wú)需建立數(shù)據(jù)源。FromMSDN上面的代碼是直接用Recordset對(duì)象進(jìn)行查詢?nèi)〉糜涗浖?/p>

例如m_pRecordset->Open("SELECT*FROMusers",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);Open方法的原型是這樣的:

HRESULTRecordset15::Open(const_variant_t&Source,const_variant_t&ActiveConnection,enumCursorTypeEnumCursorType,enumLockTypeEnumLockType,longOptions)

其中:

①Source是數(shù)據(jù)查詢字符串

②ActiveConnection是已經(jīng)建立好的連接(我們需要用Connection對(duì)象指針來(lái)構(gòu)造一個(gè)_variant_t對(duì)象)

③CursorType光標(biāo)類型,它可以是以下值之一,請(qǐng)看這個(gè)枚舉結(jié)構(gòu):

enumCursorTypeEnum

{

adOpenUnspecified=-1,程序中通過(guò)_variant_t和_bstr_t轉(zhuǎn)換COM對(duì)象和C++類型的數(shù)據(jù),_variant_t類封裝了OLE自治VARIANT數(shù)據(jù)類型。在C++中使用_variant_t類要比直接使用VARIANT數(shù)據(jù)類型容易得多。_variant_t(FromMSDN)*/

_bstr_tMicrosoftSpecificA_bstr_tobjectencapsulatestheBSTRdatatype.Theclassmanagesresourceallocationanddeallocation,viafunctioncallstoSysAllocStringandSysFreeString,andotherBSTRAPIswhenappropriate.The_bstr_tclassusesreferencecountingtoavoidexcessiveoverhead.BSTR是一個(gè)帶長(zhǎng)度前綴的字符串,主要由操作系統(tǒng)來(lái)管理的,所以要用api.主要用來(lái)和VB打交道的(VB里的string就是指它)要操作它的API函數(shù)有很多,具體可以去查一下msdn.比如SysAllocString,SysFreeString等等.vc里封裝它的類如_bstr_t,及ATL中的CComBSTR等.一個(gè)BSTR由頭部和字符串組成,頭部包含了字符串的長(zhǎng)度信息,字符串中可以包含嵌入的null值。BSTR是以指針的形式進(jìn)行傳遞的。(指針是一個(gè)變量,包含另外一個(gè)變量的內(nèi)存地址,而不是數(shù)據(jù)。)BSTR是Unicode的,即每個(gè)字符需要兩個(gè)字節(jié)。BSTR通常以兩字節(jié)的null字符結(jié)束。wstr是寬字符,以雙字節(jié)表示一個(gè)字符bstr是為了與原先的basic字符兼容,它的最前面的4個(gè)字節(jié)為其長(zhǎng)度,以'\0'結(jié)束char1signedchar–128to127Thekeywordcharidentifiesadataitemthathas8bits.嘿嘿,夠全吧VisualC++開(kāi)發(fā)數(shù)據(jù)庫(kù)技術(shù)VisualC++提供了多種訪問(wèn)數(shù)據(jù)庫(kù)的技術(shù),如下所示:ODBC(OpenDataBaseConnectivity)MFCODBC(MicrosoftFoundationClassesODBC)DAO(DataAccessObject)OLEDB(ObjectLinkandEmbeddingDataBase)ADO(ActiveXDataObject)這些技術(shù)各有自己的特點(diǎn),總結(jié)如下:ODBCODBC是客戶應(yīng)用程序訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)時(shí)提供的一個(gè)統(tǒng)一的接口,對(duì)于不同的數(shù)據(jù)庫(kù),ODBC提供了一套統(tǒng)一的API,使應(yīng)用程序可以應(yīng)用所提供的API來(lái)訪問(wèn)任何提供了ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)。而且,ODBC已經(jīng)成為一種標(biāo)準(zhǔn),所以,目前所有的關(guān)系數(shù)據(jù)庫(kù)都提供了ODBC驅(qū)動(dòng)程序,這使ODBC的應(yīng)用非常廣泛,基本上可用于所有的關(guān)系數(shù)據(jù)庫(kù)。但由于ODBC只能用于關(guān)系數(shù)據(jù)庫(kù),使得利用ODBC很難訪問(wèn)對(duì)象數(shù)據(jù)庫(kù)及其它非關(guān)系數(shù)據(jù)庫(kù)。由于ODBC是一種底層的訪問(wèn)技術(shù),因些,ODBCAPI可以使客戶應(yīng)用程序能夠從底層設(shè)置和控制數(shù)據(jù)庫(kù),完成一些高層數(shù)據(jù)庫(kù)技術(shù)無(wú)法完成的功能。MFCODBC由于直接使用ODBCAPI編寫(xiě)應(yīng)用程序要編制大量代碼,在VisualC++中提供了MFCODBC類,封裝了ODBCAPI,這使得利用MFC來(lái)創(chuàng)建ODBC的應(yīng)用程序非常簡(jiǎn)便。DAODAO提供了一種通過(guò)程序代碼創(chuàng)建和操縱數(shù)據(jù)庫(kù)的機(jī)制。多個(gè)DAO構(gòu)成一個(gè)體系結(jié)構(gòu),在這個(gè)結(jié)構(gòu)中,各個(gè)DAO對(duì)象協(xié)同工作。MFCDAO是微軟提供的用于訪問(wèn)MicrosoftJet數(shù)據(jù)庫(kù)文件(*.mdb)的強(qiáng)有力的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具,它通過(guò)DAO的封裝,向程序員提供了DAO豐富的操作數(shù)據(jù)庫(kù)手段。OLEDBOLEDB是VisualC++開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用中提供的新技術(shù),它基于COM接口。因此,OLEDB對(duì)所有的文件系統(tǒng)包括關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)都提供了統(tǒng)一的接口。這些特性使得OLEDB技術(shù)比傳統(tǒng)的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)更加

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論