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

Delphi SQL 程式設計基石:靜態與動態 SQL、TQuery 核心操作流程

     編輯:Delphi

17.2 靜態 SQL 與動態 SQL 的本質區別

在 Delphi 中操作資料庫的 SQL 陳述式分為兩大陣營:

  • 靜態 SQL: 設計期固化在 TQuery.SQL 屬性中,不含任何參數,如 SELECT * FROM Customer WHERE CustNo = 1234。執行流程單一且確定。
  • 動態 SQL(參數化查詢): 陳述式包含參數標記(以冒號開頭,如 :Number),參數值在執行期動態繫結。同一條 SQL 可服務無數種查詢條件,是企業級應用的主流選擇。

TQuery 元件標準操作三部曲

  1. 設定連線: 指定 DatabaseName(BDE 別名、目錄路徑或 TDatabase 別名)。
  2. 編寫 SQL: 兩種途徑:
    • 設計期:物件檢視器編輯 SQL 屬性(字串清單編輯器或視覺查詢建置器)。
    • 執行期:Close → Clear → Add 重建 SQL 文本。
  3. 執行命令:
    • Open:專用於 SELECT,回傳資料集。
    • ExecSQL:執行 INSERT/UPDATE/DELETE/DDL 等非查詢命令,不回傳資料集。

動態 SQL 額外步驟: 建議在賦值參數前呼叫 Prepare,大幅提升重複執行效能。

17.2.2 實戰:建立簡單查詢應用

拖放 TQuery、TDataSource、TDBGrid → 設定 DatabaseName = DBDEMOS → SQL 屬性輸入 SELECT CustNo, Company FROM Customer → 設定 Active = True 即可在網格中瀏覽結果。

17.3 SQL 程式設計核心知識體系

17.3.1 SQL 文本編寫兩大工具

  • String List Editor: 設計期逐行編輯,支援 Load/Save 檔案。執行期修改必須遵循 Close → Clear → Add 鐵律,否則新舊 SQL 疊加導致災難性後果。
  • Visual Query Builder (C/S 版專屬): 圖形化拖曳建立 SELECT 查詢,自動生成 SQL 文本。

鐵律: TQuery.SQL 預設僅接受單一完整 SQL 陳述式(部分伺服器支援批次執行)。

17.3.2 SQL 執行策略與陷阱規避

  • 設計期:設定 Active = True 即時預覽結果。
  • 執行期:Open 專職查詢,ExecSQL 專職非查詢。
  • 未知命令類型時: 必須使用 try...except 雙軌制:try Open except ExecSQL end,確保程式健壯性。
  • UniDirectional := True 可大幅加速單向游標掃描,但喪失逆向導航能力。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved