您的位置:首页 > 产品设计 > UI/UE

如何用filter过滤出query的空字段

2008-10-20 10:29 190 查看
如何用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就不会出错.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: