查询问题

我和我的蓝天白云 2005-03-01 11:40:51
adotable:

dm.table.filtered:=false;
dm.table.Filter:='cc=''cccc'' and aa=''dddd'' or bb=''bbbb' ';
dm.table.Filtered:=true;

成功!

dm.table.filtered:=false;
dm.table.Filter:='cc=''cccc'' and (aa=''dddd'' or bb=''bbbb') ';
或 dm.table.filter:='cc=''cccc'' or bb=''bbbb'' and aa=''aaaa'' '
dm.table.Filtered:=true;

失败! 为什么??


另外
dm.table.FilterOptions:=[foCaseInsensitive];
失败,如何实现模糊查询?



...全文
112 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
楚人无衣 2005-03-02
  • 打赏
  • 举报
回复
下面是在实际工作中总结出来的,看一下是不是这样:
1.filter 不能用in操作,通配用a*;
2.filter 不支持a and (b or c),要改写成(a and b) or (a and c)
3.filter 不能用is NULL来过滤,而可用= NULL
xuebeng19 2005-03-02
  • 打赏
  • 举报
回复
借用一下:请问,为什么我发帖子都提示“请不要发表可能伤害我们的文章,谢谢配合”,晕倒……

yiyideyi 2005-03-02
  • 打赏
  • 举报
回复
把你的sql.text贴出来看看
yiyideyi 2005-03-01
  • 打赏
  • 举报
回复
同意楼上的,在bbbb后面要接两个引号。
这几天看到好多因为引号导致的问题,唉~
cdsgajxlp 2005-03-01
  • 打赏
  • 举报
回复
dm.table.Filter:='cc=''cccc'' and (aa=''dddd'' or bb=''bbbb'') ';
  • 打赏
  • 举报
回复
顶,请回答啊
  • 打赏
  • 举报
回复
上面我写错了,接两个引号仍然不行的。

dm.table.Filter:='cc=''cccc'' and (aa=''dddd'' or aa=''bbbb'') ';


运行提示'变量不在接受范围之内,或与其他数据冲突'!苦恼啊!

Sorder 2005-03-01
  • 打赏
  • 举报
回复
看好过滤的字段值是整形的还是字符串等等
zzlazio 2005-03-01
  • 打赏
  • 举报
回复
多个引号少个引号这样的错误,最好把SQL.text先SHOW出来看看就明白了
7838205 2005-03-01
  • 打赏
  • 举报
回复
是的啊,用table控件效率比较低,
模糊查询在Filter里也可以使用,可以用like '*关键字'的形式
qixp231 2005-03-01
  • 打赏
  • 举报
回复
其实,在cs上的数据库设计,最好不要用adotable,效率会比较低。最好用adoquery,然后用sql语句实现模糊查询。至于上面的错误,可以自己调试一下,最简单的:加个showmessage就可以很清楚的看出你的语句少一个引号的。

2,495

社区成员

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

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