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

Delphi 存儲過程程式設計:TQuery 與 TStoredProc 雙元件實戰詳解

     編輯:Delphi

18.4.2.4 存儲過程:伺服器端運算的效能引擎

存儲過程接收輸入參數、在伺服器端執行複雜邏輯、回傳結果集或狀態。適用場景:大量記錄統計、數學函數計算、跨表業務邏輯封裝。核心優勢:

  • 就近運算,避免海量資料跨網路傳輸
  • 預編譯執行計畫,效能遠超客戶端迭代
  • 封裝業務規則,統一資料存取入口

TQuery 調用存儲過程:可選集合回傳模式

CSDEMO TFrmQueryProc 視窗示範:

  • 伺服器端 Get_Emp_Proj:輸入 EMP_NO,輸出多筆 PROJ_ID(FOR SELECT ... DO SUSPEND)。
  • 客戶端 EmployeeProjectsQuery:SQL = 'SELECT * FROM Get_Emp_Proj(:EMP_NO)',直接在 SELECT 中呼叫可選存儲過程。
  • 主表 EmployeeTable 遊標變更觸發 OnDataChange:關閉 Query → 更新參數 → Open 重查 → 即時顯示該員工專案清單。

此模式將存儲過程視為「虛擬資料表」,完美融入資料感知架構。

TStoredProc 元件:專業存儲過程執行器

CSDEMO TFrmExecProc 視窗示範 SHIP_ORDER 過程:

  • 複雜業務邏輯:檢查訂單狀態、客戶信用狀態、歷史逾期記錄,條件觸發異常或更新多表狀態。
  • 客戶端 ShipOrderProc:ParamBindMode = pbByName,參數 PO_NUM。
  • 按鈕點擊事件:Params[0].AsString := SalesTable['PO_NUMBER'] → ExecProc → SalesTable.Refresh。

關鍵差異: TQuery 適合「回傳可選集合」場景;TStoredProc 適合「執行動作、回傳標量/狀態」場景。ExecProc 執行單行/無結果集過程,Open 執行回傳結果集過程。

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