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

下載本文檔

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

文檔簡介

1、VC與ADO數(shù)據(jù)庫操作學研部的同志們,大 家好! 想開一次學習會,實習時間沖突了,只 好把文檔發(fā)給大家看了。重點推薦李振龍的 BMP 讀圖教程!尤其是大三 GIS 班的同志, 注意了,可能實習用得上的!一、ADO 簡介ADO(ActiveX Data Object) 是 Microsoft 數(shù)據(jù)庫應用程序開發(fā)的新接口, 是建立在 OLE DB 之上的高層數(shù)據(jù)庫訪問技術(shù), 請不必為此擔心, 即使你對OLE DB,COM 不了解也能輕松對付 ADO,因為它非常簡單易用,甚至比你以 往所接觸的 ODBCAPI、DAO 都要容易使用,【 1 】 為 工 程 做 準 備建一個基于對話框的工程,名字叫Pl

2、aceName。加入一個 ListControl 控件,ID 改成 IDC_RESULT 順便點一下 Styles 選項卡,把 View 改 成 Report ,你可以看到對話框里的 ListControl 控件的樣子已經(jīng)變成帶字段名的報表格式 了。右擊它,用ClassWizard 添加成員變量,名字為 m_LisCtrlResult 。按照上面的程序界面,加入一個編輯框(輸入 SQL 語句用的),同上面添加 m_LisCtrlResult 成員變量一樣,加入一個 CString 變量,名字為 m_SqlText ,還有一個“查詢”按鈕,把它 叫為 Query,雙擊它一下,VC 會自動為它加入

3、消息和函數(shù)的,名字也叫OnQuery(),等一下我們就用著那個函數(shù)的??吹轿覀?SpaceSoft 的標志不?把你的照片換成BMP 格式的,放上去吧!定義一下要用著的變量:class CPIaceNameDIg : public CDialog【3】用#import 指令引入 ADO 類型庫我們在中加入如下語句:這個文件哪里可以找到?你可以在 FileView 中的 HeaderFiles 里找到)#import c:program filescom mon filessystemado no_n amespaceren ame(EOF,adoEOF)這一語句有何作用呢?其最終作用同我們熟悉的

4、#in clude 類似,編譯的時候系 統(tǒng)會為我們生成,兩個C+頭文件來定義 ADO 庫。幾點說明:(1) 您的環(huán)境中不一定在這個目錄下,請按實際情況修改在編譯的時候肯能會出現(xiàn)如下警告,對此微軟在 MSD N 中作了說明,并建議 我們不要理會這個警告。(405) : warning C4146: unary minus operator applied to un sig ned type,result still un sig ned【4】創(chuàng)建 Co nn ection對象并連接數(shù)據(jù)庫首先我們需要添加一個指向 Co nn ection對象的指針,就是在里加入下面一句,定義它:_Connect

5、ionPtr m_pConnection;“ - ” VC 就會提醒你有 什么東 西能用的。文檔里沒說明白的就看原代碼吧,不要錢的!希望繼續(xù)關(guān)注 SpaceSoft !注意 Conn ection 對象的 Ope n 方法中的連接字符串參數(shù)必須是 BSTR 或 _bstr_t 類型。另外,本例是直接通過 OLE DB Provider 建立連接,所以無需建立數(shù)據(jù)源。From MSDN上面的代碼是直接用 Recordset 對象進行查詢?nèi)〉糜涗浖鏼_pRecordset-Open(SELECT * FROM users,_variant_t(IDispatch*)m_pConnection,

6、true),adOpenStatic,adLockOptimistic,adCmdText);Open 方法的原型是這樣的:HRESULT Recordset15:Open ( const _variant_t & Source, const _variant_t & ActiveConnection, enumCursorTypeEnum CursorType, enum LockTypeEnum LockType, long Options )其中:1Source 是數(shù)據(jù)查詢字符串2ActiveConnection 是已經(jīng)建立好的連接(我們需要用 Connection 對象

7、指針來構(gòu)造一個_variant_t 對象)3CursorType 光標類型,它可以是以下值之一,請看這個枚舉結(jié)構(gòu):enum CursorTypeEnumadOpenUnspecified = -1,程序中通過 varia nt_t 和_bstr_t 轉(zhuǎn)換 CO 對象和 C+類型的數(shù) 據(jù) varia nt_t 類圭寸裝了 OLE 自治 VARIANT 據(jù)類型。在:+中使甩 variant_t 類要比直接使用/ARIAN 數(shù)據(jù)類型容易得多。_varia nt_t (From MSDN)bstr tMicrosoft SpecificA _bstr_t object en capsulates th

8、e BSTRdata type. The class man ages resource allocati on and deallocation,via function calls toSysAllocStringand SysFreeString , and otherBSTRAPIs when appropriate.The _bstr_t class uses reference counting to avoid excessiveoverhead.BSTR 是一個帶長度前綴的字符串,主要由操作系統(tǒng)來管理的,所以要用 api.主要 用來和 VB 打交道的(VB 里的 string

9、就是指它)要操作它的 API 函數(shù)有很多,具體可以去查一下 msd n.比如SysAllocString,SysFreeString等等.vc 里封裝它 的類如_bstr_t, 及 ATL 中 的 CComBSTR 等.一個 BSTR 由頭部和字符串組成,頭部包含了字符串的長度信息,字符串中可 以包含嵌入的 null 值。BSTR 是以指針的形式進行傳遞的。(指針是一個變量,包含另外一個變量的內(nèi)存地址,而不是數(shù)據(jù)。)BSTR 是 Unicode的,即每個字符需要兩個字節(jié)。BSTR 通常以兩字節(jié)的 null 字符結(jié)束。wstr 是寬字符,以雙字節(jié)表示一個字符bstr 是為了與原先的 basic

10、字符兼容,它的最前面的 4 個字節(jié)為其長度,以0 結(jié)束char 1 sig ned char 128 to 127 The keyword char ide ntifies a data itemthat has 8 bits.嘿嘿,夠全吧Visual C+ 開發(fā)數(shù)據(jù)庫技術(shù)Visual C+ 提供了多種訪問數(shù)據(jù)庫的技術(shù),如下所示:ODBC ( Open DataBase Connectivity)MFC ODBC(Microsoft Fou ndation Classes ODBC)DAO (Data Access Object)OLE DB (Object Link and Embeddi

11、ng DataBase)ADqActiveX Data Object)|這些技術(shù)各有自己的特點,總結(jié)如下:ODBCODBC 是客戶應用程序訪問關(guān)系數(shù)據(jù)庫時提供的一個統(tǒng)一的接口,對于不同的數(shù) 據(jù)庫,ODBC 提供了一套統(tǒng)一的 API,使應用程序可以應用所提供的 API 來訪問任 何提供了 ODBC 驅(qū)動程序的數(shù)據(jù)庫。而且,ODBC 已經(jīng)成為一種標準,所以,目前 所有的關(guān)系數(shù)據(jù)庫都提供了 ODBC 驅(qū)動程序,這使 ODBC的應用非常廣泛,基本上 可用于所有的關(guān)系數(shù)據(jù)庫。但由于 ODBC 只能用于關(guān)系數(shù)據(jù)庫,使得利用 ODBC 很難訪問對象數(shù)據(jù)庫及其它非 關(guān)系數(shù)據(jù)庫。 由于 ODBC 是一種底層的訪

12、問技術(shù),因些,ODBC API 可以使客戶應用程序能夠從 底層設置和控制數(shù)據(jù)庫,完成一些高層數(shù)據(jù)庫技術(shù)無法完成的功能。MFC ODBC由于直接使用 ODBC API 編寫應用程序要編制大量代碼,在 Visual C+ 中提供了MFC ODBC 類,封裝了 ODBCAPI,這使得利用 MFC 來創(chuàng)建 ODBC 的應用程序非常簡DAODAO 提供了一種通過程序代碼創(chuàng)建和操縱數(shù)據(jù)庫的機制。 多個 DAO 構(gòu)成一個體系 結(jié)構(gòu), 在這個結(jié)構(gòu)中,各個 DAO 對象協(xié)同工作。MFC DAO 是微軟提供的用于訪問Microsoft Jet 數(shù)據(jù)庫文件(*.mdb)的強有力的數(shù)據(jù)庫開發(fā)工具,它通過 DAO 的 封裝,向程序員提供了DAO 豐富的操作數(shù)據(jù)庫手段。OLE DBOLE DB 是 Visual C+開發(fā)數(shù)據(jù)庫應用中提供的新技術(shù),它基于 COM 接口。因此,OLE DB 對所有的文件系統(tǒng)包括關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫都提供了統(tǒng)一的接口。 這些特性使得 OLEDB 技術(shù)比傳統(tǒng)的數(shù)據(jù)庫訪問技術(shù)更加優(yōu)越。與 ODBC 技術(shù)相似,OLE DB

溫馨提示

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

評論

0/150

提交評論