cyberfan's blog

正其谊不谋其利,明其道不计其功

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  15 随笔 :: 489 文章 :: 44 评论 :: 0 Trackbacks
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 ‘%教师%’
以上例子在DELPHI5下测试通过。
posted on 2005-08-12 15:29 cyberfan 阅读(432) 评论(0)  编辑 收藏 引用 所属分类: delphi
只有注册用户登录后才能发表评论。