第三節 ADO(ActiveX Data Objects)編程模型
如文章“Delphi中引入ADO”所敘述的,ADO是一套COM(Component Object Model組件對象模型)組件(DLLs),它允許你像訪問電子郵件和文件系統一樣訪問數據庫。使用ADO編寫的應用程序不需要BDE。為了用ADO訪問各種數據庫,你需要有ADO/OLE DB(Object Linking and Embedding對象鏈接和嵌入)庫。使用ADO所需要的可能在你的計算機中已存在:這些文件被微軟作為Windows98/2000的一部分分發。如果你使用的是Windows95或NT,你可能需要分發或安裝ADO引擎。Delphi 5的CD中包含有MDAC-Microsoft Data access Components(微軟數據訪問組件)的安裝文件。你應該確定使用的是MDAC的最新版本,它可以從微軟的官方網站獲得。MDAC是使Universal Data Access(通用數據訪問)起作用的關鍵技術。它們包括ActiveX Data Objects(ADO)、OLE DB和Open Database Connectivity(ODBC)。
注:為了在Windows95的計算機上正確安裝,MDAC需要DCOM95(Distributed Component Object Model分布式組件對象模型)已被安裝。為了正確的注冊,MDAC所安裝的組件依賴于DCOM95所安裝的DLLs。注意,DCOM95在NT4.0中是不需要的。在某些情況下,DCOM不需要安裝在運行Windows的計算機中。但如果沒有被安裝,安裝MDAC前應安裝DCOM98。
沒有必要過多的討論OLE DB和ADO,讓我們轉移到更實際的問題上。
ADO 對象(ADO Objects)
ADO編程模型圍繞著幾個ADO對象而建立,這些對象為訪問各種數據員提供多種方法。這些對象提供連接數據源、查詢和更新記錄集、報告錯誤的功能。Delphi通過幾個VCL組件通過訪問這些對象的封裝組件。讓我們看一下與ADO工作的對象是那些:
Connection (連接)對象,通過連接字符串與數據源連接。在BDE/Delphi中,連接對象是數據庫組件和會話(session)組件的結合。
Command (命令)對象,使我們能操作數據源。它描繪一個命令(也視為查詢或敘述),能處理對數據庫數據的增加、刪除、查詢或更新。
Recordset (記錄集)對象,是查詢(Query)命令的結果。你可以認為Recordset 是一個Delphi表(Table)組件或查詢(Query)組件。Recordset 返回的每一行都包含多個字段(Field)對象。
其他幾個在ADO模型中存在的對象有:字段(Field)對象、參數(Parameter)對象和錯誤(Error)對象—在接下來的章節中將會回過來談到它們。
第四節 用ADOExPRess連接數據庫
在對ADOExpress集合的每個組件進行簡要的解釋之前,讓我們首先了解一下怎樣連接到Access數據庫。當然,當然我們將連接到我們的樣例數據庫—AboutDelphi.mdb(譯者加:在上一章中所建立的數據庫)。
Delphi(5)主要通過組件面板ADO頁上的ADOExpress組件實現對ADO的支持。幾個其他的數據庫使能組件在本課程中將被使用。目前,我們將主要關注用ADO訪問Access數據庫所需的最小的組件集。
運行Delphi,建立一個新的帶有空的表單的應用程序。
為了能通過ADO和Delphi訪問Access數據庫的數據,你必須在你的工程中至少增加三個數據可視(data aware)組件。首先是數據控制(DataControls)組件頁的DBGrid—用于瀏覽從一個表格或通過查詢獲得的記錄。其次是DataSource(DataAccess數據訪問頁),用于連接數據集和表單上的DBGrid組件,從而實現潛在數據集數據的現實、導航(navigation)和編輯。最后是ADOTable(ADO頁),它描繪從ADO數據庫獲得的一個表。把它們都拖放在表單(Form)上,組件名都取默認值。這時表單應如圖所示:
如果你現在運行程序,Grid中沒有數據顯示—當然,因為我們沒有真正地連到數據庫上。注意另一點:僅僅Grid使可見的,其他兩個組件是不可視控件(controls-unvisible)。
組件間的連接(Link between components)
為了顯示數據庫中的數據,我們必須把三個組件連在一起。在對象監視器(Object Inspector)中進行如下設置:
DBGrid1.DataSource = DataSource1;
DataSource1.DataSet = ADOTable1 ;
現在我們到了比較難的部分了,為了真正從數據庫中獲得數據,我們必須建立一個連接字符串(ConnectionString)。這個字符串指出了數據庫的物理存儲位置和訪問方式。當你雙擊AdoTable組件的ConnectionString(連接字符串)屬性的省略號按鈕,你將得到如下的對話框:
新聞熱點
疑難解答
圖片精選