当前位置:编程学习 > 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 ‘%教师%’

 

补充:软件开发 , Delphi ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,