存儲過程接收輸入參數、在伺服器端執行複雜邏輯、回傳結果集或狀態。適用場景:大量記錄統計、數學函數計算、跨表業務邏輯封裝。核心優勢:
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 重查 → 即時顯示該員工專案清單。此模式將存儲過程視為「虛擬資料表」,完美融入資料感知架構。
CSDEMO TFrmExecProc 視窗示範 SHIP_ORDER 過程:
ShipOrderProc:ParamBindMode = pbByName,參數 PO_NUM。Params[0].AsString := SalesTable['PO_NUMBER'] → ExecProc → SalesTable.Refresh。關鍵差異: TQuery 適合「回傳可選集合」場景;TStoredProc 適合「執行動作、回傳標量/狀態」場景。ExecProc 執行單行/無結果集過程,Open 執行回傳結果集過程。