DELPHI設計資料庫查詢的幾種方法
DELPHI在設計資料庫的查詢方面真是太簡單上手了,在實際運用中,本人歸納了以下幾點,與大家共用。
(一) 過濾
(1) 一般過濾
DELPHI在設計資料庫查詢時使用的最簡單最普遍的方法。在表的屬性中(例如TABLE1),有FILTER屬性,設定該屬性值為要查詢的條件,靜態設定方法就是直接在該屬性值後輸入條件,如:XB='男' AND NL<35 ,然後設定該表的另一屬性FILTERED值為TRUE,TABLE1.ACTIVE為TRUE後,這樣在DBGRID中就能看到合格記錄了;動態設定方法就是在程式的運行過程中根據應用需要設定和改變條件,這時在輸入條件時就用:
WITH TABLE1 DO
BEGIN
FILTER :=' XB='+''''+'男'+''''+' AND NL<35 ';
FILTERED :=TRUE ;
END;
(2)查詢以某個字開頭的記錄
如要查詢姓李的記錄,在FILTER中輸入:XM = '李* ';
(3)查詢備忘形或圖形欄位
上面的查詢欄位是普通的欄位,如果要查詢MEMO,PICTURE之類的欄位,例要查詢簡曆不為空白時則在FILTER屬性值中輸入為: NOT ( JL IS NULL)。
(二) 使用SELECT語句
(1)一般的條件動態設定如下(比如資料庫名為DA.DB):
WITH QUERY1 DO
BEGIN
CLOSE ;
IF PREPARED THEN UNPREPARE ;
SQL .CLEAR ;
SQL .ADD(' SELECT * FROM DA WHERE XM= :XM ') ;
PARAMS[0].ASSTRING:='劉清' ;
PREPARE ;
OPEN ;
END;
靜態設定,只要在QUERY1的SQL屬性值中輸入條件,如果條件中有參數(條件值為
:變數名),則在PARAMS的值設定中輸入條件值,是字母的話要區分大小寫,設定QUERY1的ACTIVE為TRUE即可。
(2)在查詢出來的結果中改變顯示的欄位名:
如將查詢結果顯示的原欄位名XM改為 姓名:
SELECT XM AS 姓名,XB,NL FROM DA
這種方法可以針對在DBGRID中不同資料庫顯示出相同欄位。
針對計算結果顯示一個欄位:(如查詢某人的年工資,XM-姓名,BM-部門,YGZ-月工資額)
SELECT XM,BM,YGZ*12 AS 年工資額 FROM DA
兩個欄位計算顯示一個結果欄位:(如查詢維修費用,SL-使用的零件數量,DJ:零件單價,DJBH-單據編號)
SELECT DJBH ,SL*DJ AS 維修費用 FROM WXK
(3)模糊查詢:
使用LIKE 語句。如:要查詢檔案庫中名字叫'強'的人的記錄:
SELECT * FROM DA WHERE XM LIKE '%強%'
動態設定的話用:
SELECT * FROM DA WHERE XM LIKE :XM
然後設定參數:PARAMS[0].ASSTRING :='%強%' ;
如果要查詢MEMO類欄位如簡曆中包含"教師"這個條件的:
SELECT * FROM DA WHERE JL LIKE '%教師%'