(一) 過濾
(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 ‘%教師%’