ADO在VC++中的應用_第1頁
ADO在VC++中的應用_第2頁
ADO在VC++中的應用_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ADO在VC+中的應用摘要介紹了AD的特點以及在V+中如何通過AD開發(fā)數據庫應用程序。AD是開發(fā)訪問LE數據庫應用程序所使用的一種數據庫訪問組件,是一種可以訪問各種數據類型的連接機制。它不僅可以通過LEDB、DB訪問數據庫,還可以使用幾乎任何一種數據源,如SQLServer、rale、Aess、Exel和文本文件、圖形文件等。AD基于LEDB,提供統(tǒng)一的數據訪問接口,使用簡單,容易掌握。關鍵詞AD;數據庫;應用程序的開發(fā);V+1引言AD是irsft公司新的數據訪問技術,由于它是基于LEDB接口上實現的對象,其性能和易用性都到達了極佳程度。AD并不與數據庫直接打交道,而是要通過DB驅動程序或LE

2、DB連接字符串來操作數據庫。DB或LEDB是應用程序與數據庫進展連接通信的接口,其作用是將特定類型數據庫中的數據變換為標準而能統(tǒng)一操作的數據源。利用AD對象并通過DB或LEDB,可以實現對任意數據庫的存取和訪問。AD模型包括7個對象,主要對象有3個:nnetin、and和Rerdset,可以被獨立創(chuàng)立和釋放。此外,還包括其他4個集合對象:Fields、Errrs、Paraeters和Prperties。一個典型的AD應用程序使用nnetin對象建立與數據源的連接,然后用一個and對象給出對數據庫操作的命令,如插入數據或者查詢數據等,而Rerdset用于對結果集進展維護或者閱讀等操作。其中and

3、命令所使用的語言與低層所對應的LEDB數據源有關,不同的數據源可以使用不同的命令語言,對于關系數據庫,通常使用SQL作為命令語言。2V+中使用AD開發(fā)數據庫應用程序一般步驟在V+中使用AD開發(fā)數據庫應用程序一般包括以下步驟:1初始化庫,引入AD庫定義文件。2用nnetin對象連接數據庫。3利用建立好的連接,通過nnetin、and對象執(zhí)行SQL命令,或利用Rerdset對象獲得結果記錄集進展處理、查詢。4使用完后關閉連接,釋放對象所占的資源。3AD使用實例3.1引入AD動態(tài)鏈接庫,初始化庫環(huán)境在使用Visual+的F編程時,F并沒有提供對AD的封裝類,可以支持AD編程的是AD的動態(tài)鏈接庫文件s

4、ad*.dll,“*位置的數字代表AD庫的版本。引入該文件的方法是在stdafx.h頭文件中,添加如下代碼:#iprt:prgrafilesnfilessysteadaad15.dlln_naespaerenae(“EF,adEF)這些命令聲明在工程中使用AD,但不使用AD的名字空間,并為了防止沖突,將EF改名為adEF。AD是基于技術的,所以,在應用程序調用AD前,必須初始化庫環(huán)境。AD使用完畢后需要關閉庫,釋放初始化加載的動態(tài)鏈接庫。:Initialize(NULL);/初始化庫:Uninitialize();/去除庫3.2創(chuàng)立AD與數據庫的連接使用nnetin對象翻開連接,在引入的動態(tài)鏈

5、接庫生成的定義文件sad15.tlh中pen方法的定義如下:HRESULTpen(_bstr_tnnetinString,_bstr_tUserID,_bstr_tPassrd,lngptins)由于使用的數據庫軟件的不同,連接串的格式也有所不同,給程序員帶來很多費事。微軟公司提供了一種可視化的方法來解決這個問題,它提供了通用數據連接文件UDL來建立和測試AD的連接屬性。主要代碼如下:HRESULT_nnetinPtr_pnnetin;/連接對象智能指針/初始化數據庫連接HRESULThr;tryhr=_pnnetin.reatEinstane(_uuidf(nnetin);/實例化連接對象i

6、f(SUEEDED(hr)/設置連接串屬性為UDL文件_pnnetin-nnetinString=FileNae=nae.udl;/設置等待連接翻開的時間為20s_pnnetin-nnetinTieut=20;hr=_pnnetin-pen(,adnnetUnspeified);if(FAILED(hr)AfxessageBx(“penfail);ReturnTRUE;elseAfxessageBx(“reateinstanefnnetinfail);returnTRUE;ath(_errre)/給出異常信息_bstr_tbstrSure(e,Sure();_bstr_tbstrDesript

7、in(e.Desriptin();AfxessageBx(bstrSure+bstrDesriptin)returnTRUE;3.3使用記錄集Rerdset對象操作數據庫在AD程序中,記錄集實際上緩存可從數據庫獲得的記錄,應用程序可以從記錄集中獲得每條記錄的字段。pen方法在sad15.h文件中的定義如下:HRESULTpennst_variant_tSure,nst_variant_tAtivennttin,enuursrTypeEnuursrType,enuLkTypeEnuLkType,lngptins其中,參數Sure是記錄源;參數Ativennttin指定在哪個連接中翻開該記錄集;參

8、數ursrType指定翻開Rerdset時使用的游標;參數LkType指定翻開記錄集時應該使用的鎖定類型;參數ptins指定參數Sure的種類。主要代碼如下:HRESULThr;_variant_tvar;_RerdsetPtrpRerdset;/定義記錄集指針hr=pRerdset.reatEinstane(_uuidf(Rerdset);/實例化記錄集指針Stringstrsql;strsql=SELET*FRnaetable/定義并初始化SQL語句字符串,naetable為表名try/利用pen函數執(zhí)行SQL命令,獲得查詢結果記錄集hr=pRerdset-pen(_variant_t(s

9、trsql),_pnnetin.GetInterfaePtr(),adpenDynai,adLkptiisti,addText);if(hr)hile(!pRerdset-adEF)/獲取第1列的值,從0開場計數,也可以直接給出列的名字var=pRerdset-Getllet(lng)0);var=pRerdset-Getllet(“Nae);pRerdset-veNext();/挪動當前記錄到下一條記錄pRerdset-veFirst();/挪動到首條記錄pRerdset-Delete(adAffeturent);/刪除當前記錄pRerdset-AddNe();/添加新記錄pRerdset-

10、Putllet(“ID,_variant_t(lng)72);pRerdset-Putllet(“Nae,_variant_t(“小王);pRerdset-veNext();pRerdset-Putllet(“Nae,_variant_t(“小周);/修改Nae字段的值pRerdset-Update/保存到數據庫中elseAfxessageBx(“penrerdsetfail);return;ath(_errr*e)AfxessageBx(e-Errressage();return;pRerdset-lse();pRerdset=NULL;3.4使用and對象操作數據庫and對象定義了將對數據源執(zhí)行的指定命令。使用and對象的流程和記錄集對象類似,首先聲明_andPtr變量;實例化變量;設置對象的某些屬性值;調用Exeute方法執(zhí)行命令。所以,這里就不給出代碼了。4完畢語AD是應用級的編程接口,它以LEDB為根底,對LEDB進展了封裝。它的主要優(yōu)點是易于使用、速度快、內存支出少和使用較少的網絡流量。AD技術是微軟大力支持和開展的技術,對于致力與Visual+的程序員來說,理解和掌握AD技術具有深遠的意義。參考文獻1原奕等編著.Visual+

溫馨提示

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

最新文檔

評論

0/150

提交評論