国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在CB5中使用ADO數據庫編程

2019-11-17 05:28:54
字體:
來源:轉載
供稿:網友

  ---- 本文介紹了在 C++Builder 5環境下新增的ADO控件的使用方法,并給出了一個簡單的實例。
---- 一、ADO概述

---- ADO(Active Data Object) 是微軟公司基于OLE DB的數據庫模型。它實現了一系列COM接口,通過數據提供者(Data PRovider)和數據使用者( Data Consumer)來實現廣義的數據存取。ADO模型一方面簡化了數據存取,例如使用Jet OLE DB Provider可以實現access數據庫的無DSN連接;另一方面,在asp等Internet應用中也得到了廣泛的使用。

---- 在C++Builder 5/Delphi 5中諸多新增特性中,ADO數據控件的引入是比較引人注目的,它使ADO編程和在Visual Basic 6中一樣輕易。由于VCL類庫對ADO的封裝更加合理,舊的數據控件可以很輕易地升級到ADO支持,而不象在VB中某些DAO或RDO控件無法兼容ADO。

---- 二、使用ADO控件

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

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

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

---- (2)CommandText屬性:可以使用CommandText Editor生成SQL語句或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  {select * 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控件使開發者能集中注重力于數據庫的邏輯與功能設計,而不必關心繁復的常規代碼和操作。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴彦淖尔市| 许昌县| 丹凤县| 唐河县| 招远市| 沁阳市| 遵化市| 托克逊县| 蓬溪县| 龙里县| 天全县| 禄丰县| 万源市| 大荔县| 天峨县| 许昌县| 宝兴县| 边坝县| 卢湾区| 平舆县| 营山县| 大荔县| 博罗县| 确山县| 修文县| 红河县| 荥阳市| 巢湖市| 呼伦贝尔市| 西畴县| 隆德县| 高密市| 资阳市| 积石山| 贵溪市| 乐至县| 工布江达县| 盐边县| 卢氏县| 唐海县| 新乡县|