靜態方式是把SQL命令文作為TQuery部件的SQL屬性值進行設置這樣當執行應用程序時Delphi便執行TQuery部件SQL屬性中設置的SQL命令如果是SQL中的查詢命令把TQuery部件通過TDataSource部件與數據控制部件相連查詢的結果將會顯示在與 TQuery部件相連接的數據浏覽部件中動態SQL語句是指SQL語句中包含一些參數變量在程序中可以為這些參數賦值在程序運行過程中各個參數值是變化的TQuery部件的SQL 屬性中的SQL語句的編寫也有兩種方法一種方法是在程序設置階段便將相應的SQL語句寫入到TQuery的SQL屬性中另一種方法是在Delphi開發的應用程序將SQL語句包含在Pascal代碼單元中
在SQL編程中使用TQuery部件的具體方法步驟如下
①為TQuery部件設置DatabaseName屬性它可以是用BDE建立的數據庫的別名或桌面數據庫系統中的目錄名或數據庫服務器中的文件名如果在應用中使用了TDatabase 部件那麼TQuery部件的DatabaseName屬性可以是TDatabase部件中定義的一個數據庫別名詳細情況請參看TDatabase部件的使用;
②為TQuery部件設置SQL屬性TQuery部件的SQL屬性值就是應用程序要執行的SQL 命令文本設置SQL屬性有兩種方法
● 在程序設計過程中我們可以通過對象浏覽器(Object Inspector)編輯SQL屬性在Object Inspector中選擇SQL屬性這樣會打開String List Editor窗口在其中我們便可以編寫SQL命令我還可以打開Visual Query Builder來編寫SQL命令 (只有Delphi的客戶/服務器版本才具有這一工具)
● 將SQL命令包含在Pascal代碼單元中
在程序運行過程中首先調用TQuery部件的Close方法關閉當前的TQuery部件然後調用Clear方法清除SQL屬性並說明新的SQL命令文本然後調用Add方法將新的SQL命令文本加入到SQL屬性中
③通過調用TQuery部件的Open方法或ExecSQl方法執行 SQL 命令 Open 方法只執行Select命令ExecSQL方法還可以執行其它的SQL命令Open方法和ExecSQL 方法的區別我們在後面的章節裡會進一步地加以討論的
如果使用動態SQL語句首先調用prepare方法給動態SQL語句中的參數賦值然後再調用Open方法或ExecSQL方法調用propare 方法並不是必須的但是對於要多次執行TQuery部件中SQL屬性中的動態SQL語句調用Prepare可以大大提高TQuery部件執行SQL語句的性能
在TQuery部件中編寫簡單的SQL查詢命令
在這一節裡我們將學習如何使用TQuery部件編寫簡單的SQL查詢命令並在Delphi 應用程序中實現SQL查詢
例如如果我們想查詢出表CustomerDB中客戶的編號和公司名稱我們按下列步驟來實現
①在應用窗體中放置一個TQuery部件一個TDataSource部件一個TDataGrid部件並將它們連接起來
②設置窗體TQuery 部件Query的DatabaseName屬性值為DBDEMOS
③雙擊Object Inspector窗口中Query的SQL 屬性 Delphi 將顯示 String List Editor窗口
④在圖中的窗口中輸入SQL語句
Select CustNoCompany From Custormer;
⑤單擊OK按鈕關閉String List Editor窗口
⑥設置Query的Open屬性為True
SQL語言編程概述
在Delphi應用程序中的SQL命令語句是包含在TQuery部件的SQL屬性中TQuery部件的SQL屬性是TString類型的也就是說SQL屬性值是一個字符串列表這個字符串列表非常類似於一個字符串類型的數組有關TString類型的信息請參看聯機幫助在前一節裡我們介紹了TQuery部件可以執行兩種SQL語句
● 靜態SQL語句
● 動態SQL語句
靜態SQL語句在程序設計時便已固定下來它不包含任何參數和變量例如下面的語句便是一條靜態SQL語句
Select * From Cusromer Where CustNo = ;
而動態SQL語句也被稱作參數化的語句在其中間包含著表示字段名或表名的參數例如下面的語句是一條動態SQL語句
Select * From Customer Where CustNo =: Number;
其中的變量Number便是一個參數變量它由一個冒號引導在程序運行過程中必須要為該參數賦值該條SQL語句才能正確執行每次運行應用程序時可以為該參數變量賦予不同的值
SQL命令文本的編寫
使用String List Editor編寫
我們要為TQuery部件的SQL屬性設置SQL命令文本時可以在應用窗體中選擇TQuery部件且雙擊Object Inspector窗口中的SQL屬性這樣便打開了String List Editor 窗口在該窗口中我們便可以編寫各種SQL命令如圖所示
在編寫完適當的SQL語句之後選擇 OK 按鈕便可以將編輯器中的 SQL 命令文裝入到TQuery部件的SQL屬性中選擇SAVE按鈕可以將編寫好的SQL命令保存到一個文件中供以後編程時使用我們在編寫SQL命令文本時還可以選擇Load按鈕從一個 SQL 命令文件中調入SQL命令在程序運行過程中要想設置TQuery部件的SQL屬性必須首先調用Close方法關閉TQuery部件然後再調用Clear方法清除SQL屬性中現存的SQL命令語句最後再調用Add方法為SQL屬性設置新的SQL命令語句例如
QueryClose {關閉Query)
QuerySQLClear {清除SQL屬性中的SQL命令語句}
QuerySQLAdd(Select * From Country)
QuerySQLAdd(Where Name =ARGENTINA )
在為TQuery部件設置SQL屬性時調用Close方法總是很安全的如果TQuery部件已經被關閉了調用Close方法時不會產生任何影響在應用程序中為SQL屬性設置新的SQL 命令語句時必須要調用Clear方法以清除SQL屬性中現存的SQL命令語句如果不調用Clear方法便調用Add方法向SQL屬性中設置SQL命令語句那麼新設置的SQL命令語句會追加在現存SQL命令語句後面在程序運行時常常會出現出乎意料的查詢結果甚至程序無法運行下去
在這裡要特別注意的一般情況下TQuery部件的SQL屬性只能包含一條完整的SQL語句它不允許被設置成多條SQL語句當然有些數據庫服務器也支持在TQuery部件的SQL屬性中設置多條SQL語句只要數據庫服務器允許這樣我們在編程時可以為 SQL 屬性設置多條SQL語句
[] [] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25145.html