Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1226757
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-10-20 10:36:23



想过滤出某字段值为空的记录  
  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就不会出错.



[新闻]硅谷VC过冬:屯现金 广节流 慎投资
博客园首页 社区 新闻频道 小组 博问 网摘 闪存
阅读(964) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~