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

liu9527 2006-12-25 03:53:29
想过滤出某字段值为空的记录
paradox 表,使用query
设置filter:= '字段名=NUll'
不能执行?
...全文
358 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu9527 2006-12-28
  • 打赏
  • 举报
回复
找到原因,当sql 加入where 条件且条件是date型,并且使用了query的paramByName()做为传递参数的方式,则使用null 出错,改为不用 sDate=:sd1的方式,直接加入,则过滤时用null就不会出错.
comanche 2006-12-28
  • 打赏
  • 举报
回复
楼上飞哥, 就是用的 field is null, 这个可以
liu9527 2006-12-28
  • 打赏
  • 举报
回复
新建一个表可以的,
我再找找原因,
另外如何过滤出为null 或者为trim(filed.value)=''的记录
wudi_1982 2006-12-28
  • 打赏
  • 举报
回复

按照我例子中的,新建一个表,

数据表结构如下:表名,temp
字段名 a 数值类型 主键
字段名 b 文本
数据库是paradox 表

输入一些测试数据
然后在DELPHI新建工程,不要用你以前那个,用下面代码,看看行不行。不过在我机器上是没有任何问题的。
代码如下:
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from temp');

Filter := 'b=null';
Filtered := true;//估计你是没写这个
Open;
end;
liu9527 2006-12-28
  • 打赏
  • 举报
回复
Filter := 'b=null';
Filtered := true;//估计你是没写这个
Open;
不行的,我试过 filtered:=true ,我已写了
b 为char型, Filter:='b='' '''都可以,但一用到null 就报错
capbility can not supported
is, in 都不行
paradox 表
winxkm 2006-12-26
  • 打赏
  • 举报
回复
B如果是文本类型,在SQLSERVER中是不行的
用这个判断:Datalength(B)>0
wudi_1982 2006-12-25
  • 打赏
  • 举报
回复
用=
给你做了一个例子:
数据表结构如下:表名,temp
a 数值类型
b 文本

代码如下:
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from temp');

Filter := 'b=null';
Filtered := true;//估计你是没写这个
Open;
end;
梅青松 2006-12-25
  • 打赏
  • 举报
回复
好像is也不行 ^-^!!!
wudi_1982 2006-12-25
  • 打赏
  • 举报
回复


在access中,这么写 fieldname=null
梅青松 2006-12-25
  • 打赏
  • 举报
回复
filter = 'FieldName is null'吧
jimcute 2006-12-25
  • 打赏
  • 举报
回复
filter:= '字段名 in NUll'

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧