首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

C++Builder 5 ADO 資料庫程式設計:從入門到 Master/Detail 實戰

     編輯:VC 教學

ADO 簡介

ADO (ActiveX Data Objects) 是微軟基於 OLE DB 的資料存取模型,透過 COM 介面實現統一的資料存取。C++Builder 5 (Delphi 5) 引入 VCL 封裝的 ADO 元件 (TADOConnection, TADOTable, TADOQuery, TADODataSet, TADOCommand),使 ADO 程式設計如同傳統 BDE 一樣直觀,且支援無 DSN 連接、ASP 應用等現代場景。

常用 ADO 元件對照

元件用途
TADOConnection集中管理連接字串、交易、連接池
TADOTable單表操作、索引、篩選
TADOQuery任意 SQL 查詢、參數化查詢
TADODataSet通用資料集,支援 Shape、回傳結果集的 SQL
TADOCommand執行不回傳結果集的 DML (INSERT/UPDATE/DELETE)、預存程序

連接設定步驟

  1. 放置 TADOConnection,設定 ConnectionString:
    • 點選屬性省略號 → 「使用連接字串」 → 「建立」。
    • 提供者選 Microsoft Jet 4.0 OLE DB Provider (Access) 或 SQLOLEDB (SQL Server)。
    • 輸入資料庫路徑、認證資訊,測試連接。
  2. 將其他 ADO 元件的 Connection 屬性指向此 TADOConnection,或直接在各元件設定 ConnectionString。

Master/Detail 實戰:使用 Shape 指令

Shape 是 ADO 的階層式資料集指令,可在單一查詢中定義主從關係。

1. 元件佈局

名稱類型關鍵屬性
ADOConnection1TADOConnectionConnectionString → Northwind.mdb (Provider=MSDataShape)
ADODataSet1TADODataSetConnection=ADOConnection1, CommandText=Shape 指令
DataSource1TDataSourceDataSet=ADODataSet1
DBGrid1TDBGridDataSource=DataSource1
ADODataSet2TADODataSetDataSetField=ADODataSet1.Details
DataSource2TDataSourceDataSet=ADODataSet2
DBGrid2TDBGridDataSource=DataSource2

2. Shape 指令內容

SHAPE {SELECT * FROM Orders}
APPEND ({SELECT * FROM [Order Details]} AS Details
RELATE OrderID TO OrderID)
  • 主集合:Orders。
  • 從集合:Order Details,別名 Details。
  • 關聯鍵:OrderID。

3. 設計時設定

  1. 右鍵 ADODataSet1 → Fields Editor → Add all fields,確保 Details 欄位被識別為 TDataSetField。
  2. 設定 ADODataSet2.DataSetField = ADODataSet1.Details。
  3. 在 DBGrid1 的 Columns 編輯器中隱藏 Details 欄位(避免顯示「(DataSet)」文字)。

4. 執行效果

游標在 DBGrid1 (Orders) 移動時,DBGrid2 自動顯示該訂單的明細條目,無需額外代碼。

進階提示

  • 參數化查詢:ADOQuery1->Parameters->ParamByName("CustID")->Value = 123;
  • 交易控制:ADOConnection1->BeginTrans() / CommitTrans() / RollbackTrans()。
  • 異步執行:ExecuteOptions = eoAsyncExecute + OnExecuteComplete 事件。
  • 斷開連接資料集:ADODataSet1->CursorLocation = clUseClient 可離線操作。

總結

C++Builder 5 的 ADO 元件提供了強大且易用的資料存取能力。善用 TADOConnection 集中管理連接、TADODataSet 搭配 Shape 指令實現 Master/Detail、TADOCommand 執行 DML,能快速構建健壯的資料庫應用程式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved