在 Delphi 中操作資料庫的 SQL 陳述式分為兩大陣營:
SQL 屬性中,不含任何參數,如 SELECT * FROM Customer WHERE CustNo = 1234。執行流程單一且確定。:Number),參數值在執行期動態繫結。同一條 SQL 可服務無數種查詢條件,是企業級應用的主流選擇。DatabaseName(BDE 別名、目錄路徑或 TDatabase 別名)。SQL 屬性(字串清單編輯器或視覺查詢建置器)。Close → Clear → Add 重建 SQL 文本。Open:專用於 SELECT,回傳資料集。ExecSQL:執行 INSERT/UPDATE/DELETE/DDL 等非查詢命令,不回傳資料集。動態 SQL 額外步驟: 建議在賦值參數前呼叫 Prepare,大幅提升重複執行效能。
拖放 TQuery、TDataSource、TDBGrid → 設定 DatabaseName = DBDEMOS → SQL 屬性輸入 SELECT CustNo, Company FROM Customer → 設定 Active = True 即可在網格中瀏覽結果。
Close → Clear → Add 鐵律,否則新舊 SQL 疊加導致災難性後果。鐵律: TQuery.SQL 預設僅接受單一完整 SQL 陳述式(部分伺服器支援批次執行)。
Active = True 即時預覽結果。Open 專職查詢,ExecSQL 專職非查詢。try...except 雙軌制:try Open except ExecSQL end,確保程式健壯性。UniDirectional := True 可大幅加速單向游標掃描,但喪失逆向導航能力。