在C++Builder 5中使用ADO資料庫程式設計 (轉)

gugu99發表於2008-05-04
在C++Builder 5中使用ADO資料庫程式設計 (轉)[@more@]

在C++Builder 5中使用ADO

---轉載自《世界日報》 (文/凌震)

---- 本文介紹了在 C++Builder 5環境下新增的ADO的使用方法,並給出了一個簡單的例項。

---- 一、ADO概述

---- ADO(Active Data ) 是公司基於OLE 的資料庫模型。它實現了一系列COM介面,透過資料提供者(Data Provr)和資料使用者( Data Consumer)來實現廣義的資料存取。ADO模型一方面簡化了資料存取,例如使用Jet OLE DB Provider可以實現Access資料庫的無DSN連線;另一方面,在等Inte應用中也得到了廣泛的使用。

---- 在C++Builder 5/ 5中諸多新增特性中,ADO資料控制元件的引入是比較引人注目的,它使ADO程式設計和在 6中一樣容易。由於VCL類庫對ADO的封裝更加合理,舊的資料控制元件可以很容易地升級到ADO支援,而不象在VB中某些DAO或RDO控制元件無法相容ADO。

---- 二、使用ADO控制元件

---- 在C++Builder 5中,ADO控制元件實質上是一種資料訪問。如果讀者有過C++Builder先前版本的資料庫開發,就會發現與資料訪問元件相連的資料來源元件(Tdata) 和資料感知元件(如TDBGrid)的使用方法和以前一樣,只需把 TdataSource 連到ADO控制元件上即可。

---- 如果要實現簡單的表操作或查詢,可以使用TADOTable或TADOQuery。更一般地,可以使用TADODataSet控制元件,其基本屬性的設定方法如下:

---- (1)ConnectionString屬性:點選屬性欄中的省略號,出現視窗,選"Use Connection String",按Build按鈕。在接下來的視窗中選擇資料提供者,以微軟的Northwind示例Access資料庫為例,選 Jet 4.0 OLE DB Provider, 按Next按鈕,選擇資料庫的路徑和名。點選Test Connection按鈕可以測試資料庫連線。點選"確定"。

---- (2)CommandText屬性:可以使用CommandText Editor生成語句或Shape語句。

---- 注意,TADODataSet不支援不返回結果集的DML語句,如DELETE,INSERT,UPDATE。如果要使用這些語句,選擇TADOCommand或TADOQuery。

---- 這些ADO控制元件自身已能實現資料庫連線,也可以設定其Connection屬性為一個TADOConnection控制元件名,而在 TADOConnection控制元件中設定 ConnectionString屬性。所有屬性也可以用程式碼在執行期間設定。

---- 三、一個Master/Detail例項

---- 下面以一個簡單的例項說明ADO控制元件的應用。這裡我們用Shape語句實現Master/Detail關係。關於Shape語句的詳細解釋,請參考MSDN文件。

---- 1. 新建一個專案,並在窗體中放置下列控制元件(帶省略號的屬性值先不設定):

名稱控制元件型別屬性屬性值 ADOConnection1 TADOConnection ConnectionString … ADODataSet1 TADODataSet Connection ADOConnection1 CommandText… DataSource1 TDataSource DataSet ADODataSet1 DBGrid1 TDBGrid DataSource DataSource1 ADODataSet2 TADODataSet DataSetField … DataSource2 TDataSource DataSet ADODataSet2 DBGrid2 TDBGrid DataSource DataSource2

---- 2. 設定 ADOConnection1的ConnectionString值

---- 選擇Data Provider為MSDataShape,並設定Northwind資料庫的路徑和名稱。

---- 3. 設定 ADODataSet1的CommandText值如下:

SHAPE { * from Orders} APPEND ({select * from [Order Details]} AS Details RELATE OrderID TO OrderID)

---- 這裡定義了主表Orders和子表Order Details透過OrderID的連線。 

---- 4. 在ADODataSet1控制元件上右擊,選Fields Editor…->右擊->選Add fields… 或Add all fields,務必選中"Details"項,這是我們在Shape語句中定義的用於子表連線主表的資料集。

---- 5. 設定

----ADODataSet2的DataSetField值,這時可供選擇的值為ADODataSet1Details,選中它,表明與ADODataSet1的Details列相連。

---- 6. 出現在 DBGrid1中的 Details 列,其每個記錄都是DataSet型別的。可以在DBGrid1中隱藏 Details列的顯示:選擇 DBGrid1的Columns屬性,在彈出視窗的工具條上點選 Add all Fields,選中 Details,點選Delete Selected.

---- 7. 執行該,當資料指標在主表Orders中移動時,子表Order Details自動以顯示不同訂單的明細條目。

---- 從以上例項看出, C++Builder 5完全具備開發複雜的ADO應用程式的能力,其強大的VCL控制元件使開發者能集中注意力於資料庫的邏輯與功能設計,而不必關心繁複的常規程式碼和操作。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1003283/,如需轉載,請註明出處,否則將追究法律責任。

相關文章