Visual C#數(shù)據(jù)庫使用ADO的三種方法總結
大家都知道ADO 是目前在Windows環(huán)境中比較流行的客戶端數(shù)據(jù)庫編程技術。在網(wǎng)上收集了很多資料,所以才能和大家談談關于Visual C#數(shù)據(jù)庫使用。 ADO是建立在OLE DB底層技術之上的高級編程接口,因而它兼具有強大的數(shù)據(jù)處理功能(處理各種不同類型的數(shù)據(jù)源、分布式的數(shù)據(jù)處理等等)和極其簡單、易用的編程接口,因而得到了廣泛的應用。而且按微軟公司的意圖,OLE DB和ADO將逐步取代 ODBC和DAO?,F(xiàn)在介紹ADO各種應用的文章和書籍有很多,本文著重站在初學者的角度,簡要探討一下在VC++中使用ADO編程時的一些問題。
Visual C#數(shù)據(jù)庫使用
ADO實際上就是由一組Automation對象構成的組件,因此可以象使用其它任何Automation對象一樣使用ADO。ADO中最重要的對象有三個:Connection、Command和Recordset,它們分別表示連接對象、命令對象和記錄集對象。如果您熟悉使用MFC中的ODBC類(CDatabase、CRecordset)編程,那么學習ADO編程就十分容易了。
使用ADO編程時可以采用以下三種方法之一:
1、使用預處理指令#import
- #import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
- no_namespace rename("EOF", "EndOfFile")
但要注意不能放在stdAfx.h文件的開頭,而應該放在所有include指令的后面。否則在編譯時會出錯。
程序在編譯過程中,VC++會讀出msado15.dll中的類型庫信息,自動產(chǎn)生兩個該類型庫的頭文件和實現(xiàn)文件msado15.tlh和msado15.tli(在您的Debug或Release目錄下)。在這兩個文件里定義了ADO的所有對象和方法,以及一些枚舉型的常量等。我們的程序只要直接調(diào)用這些方法就行了,與使用MFC中的COleDispatchDriver類調(diào)用Automation對象十分類似。
2、使用MFC中的CIDispatchDriver
就是通過讀取msado15.dll中的類型庫信息,建立一個COleDispatchDriver類的派生類,然后通過它調(diào)用ADO對象。
3、直接用COM提供的API
如使用如下代碼:
- CLSID clsid;
- HRESULT hr = ::CLSIDFromProgID(L"ADODB.Connection", &clsid);
- if(FAILED(hr))
- {...}
- ::CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (void **)
- &pDispatch);
- if(FAILED(hr))
- {...}
以上三種方法,第一和第二種類似,可能第一種好用一些,第三種編程可能最麻煩。但可能第三種方法也是效率最高的,程序的尺寸也最小,并且對ADO的控制能力也最強。
據(jù)微軟資料介紹,第一種方法不支持方法調(diào)用中的默認參數(shù),當然第二種方法也是這樣,但第三種就不是這樣了。采用第三種方法的水平也最高。當你需要繞過ADO而直接調(diào)用OLE DB底層的方法時,就一定要使用第三種方法了。
ADO編程的關鍵,就是熟練地運用ADO提供的各種對象(object)、方法(method)、屬性(property)和容器(collection)。另外,如果是在MS SQL或Oracle等大型數(shù)據(jù)庫上編程,還要能熟練使用SQL語言。以上就是Visual C#數(shù)據(jù)庫使用,希望大家在平時的時候養(yǎng)成總結的習慣。
【編輯推薦】