delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
如何用filter过滤出query的空字段 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061225155329114.html
想过滤出某字段值为空的记录  
  paradox   表,使用query  
  设置filter:=   '字段名=NUll'  
  不能执行?  
 

filter:=   '字段名   in   NUll'

filter   =   'FieldName   is   null'吧

 
   
  在access中,这么写     fieldname=null

好像is也不行     ^-^!!!

用=  
  给你做了一个例子:  
  数据表结构如下:表名,temp  
  a   数值类型    
  b   文本  
   
  代码如下:  
        with   Query1   do  
        begin  
              Close;  
              SQL.Clear;  
              SQL.Add('select   *   from   temp');  
   
              Filter   :=   'b=null';  
              Filtered   :=   true;//估计你是没写这个  
              Open;  
        end;

B如果是文本类型,在SQLSERVER中是不行的  
  用这个判断:Datalength(B)>0

Filter   :=   'b=null';  
              Filtered   :=   true;//估计你是没写这个  
              Open;  
  不行的,我试过   filtered:=true   ,我已写了  
  b   为char型,   Filter:='b=''   '''都可以,但一用到null   就报错  
  capbility   can   not   supported  
    is,   in   都不行  
  paradox   表  
 

 
  按照我例子中的,新建一个表,  
   
  数据表结构如下:表名,temp  
  字段名   a   数值类型   主键  
  字段名   b   文本  
  数据库是paradox   表  
   
  输入一些测试数据  
  然后在DELPHI新建工程,不要用你以前那个,用下面代码,看看行不行。不过在我机器上是没有任何问题的。  
  代码如下:  
        with   Query1   do  
        begin  
              Close;  
              SQL.Clear;  
              SQL.Add('select   *   from   temp');  
   
              Filter   :=   'b=null';  
              Filtered   :=   true;//估计你是没写这个  
              Open;  
        end;

新建一个表可以的,  
  我再找找原因,  
  另外如何过滤出为null   或者为trim(filed.value)=''的记录

楼上飞哥,   就是用的   field   is   null,   这个可以

找到原因,当sql   加入where   条件且条件是date型,并且使用了query的paramByName()做为传递参数的方式,则使用null   出错,改为不用   sDate=:sd1的方式,直接加入,则过滤时用null就不会出错.

posted on 2008-10-20 10:33 delphi2007 阅读(466) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。