起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 472|回复: 17

【结贴】请教查询问题,急!**

[复制链接]
发表于 2008-2-20 16:07:06 | 显示全部楼层 |阅读模式
我想在一个窗体中,加入查询条件。这个条件由三部分组成。只有这三个条件同时满足,才能准确查找到需要的数据?请问需要如何做?例如:三个条件分别是时间(年),机组号,检修等级
回复

使用道具 举报

发表于 2008-2-20 16:37:07 | 显示全部楼层
可以用Filter也可以用sqlFilter
参考代码
dataset.Filter := '  字段1 = ''2008'' and  字段2 = ''机组号01'' and 字段3 = ''检修等级1''  '
datasetFiltered := True;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-21 15:02:34 | 显示全部楼层
请教:我的查询条件是1、年份(例如2008年、2009年),2、机组(例如1号机组、2号机组),3、检修级别(例如A级检修、B级检修等)。我需要的时间(2008、2009、2010……)、检修级别、机组全部做的是枚举查找。可以通过编译,但是运行时出错“could not parse SQL timestamp string ,错误类型:EConvertError”
begin
  lyear :=  DataSetDemCond.FieldByName('year').AsDateTime;
  lJZ := DataSetDemCond.FieldByName('JZ').AsString;
  lJXJB := DataSetDemCond.FieldByName('JXJB').AsString;
  lCondition := '1=1';
  if lyear <> '' then
  lCondition := lCondition + ' and  To_Char(PRO_COSTMAIN.year,''yyyymmdd'') = '+SysUtils.FormatDateTime('yyyymmdd',lyear);

  DataSetCheMain.Close;
  DataSetCheMain.SqlFilter := lCondition;
  DataSetCheMain.SqlFiltered := True;
  DataSetCheMain.OPen;

end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-21 15:04:27 | 显示全部楼层
这段代码原来只是用在“日期时间”查找的,和我做的枚举应该不同,请问,需要如何修改?
回复 支持 反对

使用道具 举报

发表于 2008-2-21 15:15:13 | 显示全部楼层
形如
  TSQLDataSet(DataSetKHSJJ).SQLFilter := ' KHMC IN(''a'',''b'',''c'',''d'') AND YWY IN(''ZS'',''LS'') ';
  TSQLDataSet(DataSetKHSJJ).SQLFiltered := True;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-21 15:35:51 | 显示全部楼层
请问在用户手册的哪个章节可以查到相关内容?
回复 支持 反对

使用道具 举报

发表于 2008-2-21 15:49:11 | 显示全部楼层
对于过滤可以在用户手册的第6章 业务信息里找到相关内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-22 09:17:16 | 显示全部楼层
请问:TSQLDataSet(DataSetKHSJJ).SQLFilter := ' KHMC IN(''a'',''b'',''c'',''d'') AND YWY IN(''ZS'',''LS'') ';
这段代码的意思是过滤条件= 在a,b,c,d中包含‘KHMC’“与上”在zs,ls中包含 ‘ywy’,这两个条件同时满足才能查询到相应的内容吗?请问a,b,c,d和zs,ls分别是什么?
回复 支持 反对

使用道具 举报

发表于 2008-2-22 09:29:00 | 显示全部楼层
上面的代码含义是
KHMC这个字段的值为'a','b','c','d',并且YWY这个字段的值为'ZS','LS',只有符合这两个条件的数据才会被过滤出来
效果图:

snap3.png

6.4 KB, 下载次数: 197

回复 支持 反对

使用道具 举报

发表于 2008-2-22 09:30:28 | 显示全部楼层
过滤出KHMC 这个字段的值为''a'',''b'',''c'',''d'',且YWY 这个字段为''ZS'',''LS''的记录 ';
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 04:54 , Processed in 0.048039 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表