起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 204|回复: 10

【结贴】查询速度**

[复制链接]
发表于 2008-8-9 16:03:20 | 显示全部楼层 |阅读模式
如下代码 if radiobutton1.Checked then
   begin
  // dsb_cx.DataSet.open;
  tsqldataset(dsb_cx.DataSet).open;

   pk1 := sysutils.DateToStr(datetimepicker1.Date);
   pk2 := sysutils.DateToStr(datetimepicker2.Date);
   tsqldataset(dsb_cx.DataSet).SQLFilter := 'rq between '''+pk1+''' and '''+pk2+''' and bm='''+bm+''' ';
   tsqldataset(dsb_cx.DataSet).SQLFiltered := true;
   datagrid.ApplyBestFit(nil);
   end;
   if radiobutton2.Checked then
   begin
   ///dsb_cx.DataSet.open;
   tsqldataset(dsb_cx.DataSet).open ;

   pk1 := sysutils.DateToStr(datetimepicker1.Date);
   pk2 := sysutils.DateToStr(datetimepicker2.Date);
   tsqldataset(dsb_cx.DataSet).SQLFilter := 'rq between '''+pk1+''' and '''+pk2+''' and xm ='''+xm+''' ';
   tsqldataset(dsb_cx.DataSet).SQLFiltered := true;
   datagrid.ApplyBestFit(nil);
   end;
第一次执行时,很慢,
第二次执行时,很快
回复

使用道具 举报

发表于 2008-8-9 19:35:35 | 显示全部楼层
跟踪一下,哪个代码执行慢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-11 10:34:53 | 显示全部楼层
怎么知道哪句慢??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-11 10:39:18 | 显示全部楼层
tsqldataset(dsb_cx.DataSet).open;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-11 10:40:09 | 显示全部楼层
这句最慢,怎么处理
回复 支持 反对

使用道具 举报

发表于 2008-8-11 10:46:46 | 显示全部楼层
你的那个表,有多少数据?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-11 10:48:09 | 显示全部楼层
很多
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-11 10:49:12 | 显示全部楼层
两万多
回复 支持 反对

使用道具 举报

发表于 2008-8-11 10:50:29 | 显示全部楼层
tsqldataset(dsb_cx.DataSet).open;
把这句话,写在过滤条件的后面
回复 支持 反对

使用道具 举报

发表于 2008-8-11 10:58:50 | 显示全部楼层
楼主,你怎么这么写代码呢,open数据集后,马上就做服务端过滤SQLFilter,你应该把这个条件加到 dsb_cx. 这个数据集的SQL语句的Where部分,然后在open数据集
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 14:42 , Processed in 0.036775 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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