起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: allentime

【结贴】操作超时[问题]**

[复制链接]
 楼主| 发表于 2008-7-30 13:55:50 | 显示全部楼层
运行功能的时候,在代码上设置断点,通过ctrl+f7取执行TSQLDataSet的SQL.Text,把取到的脚本复制到查询分析器中执行
回复 支持 反对

使用道具 举报

发表于 2008-7-30 15:25:51 | 显示全部楼层
在设计期间打开数据集时,会不会报超时, 会看到数据吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-30 15:34:40 | 显示全部楼层
数据集的SQL语句有union操作,测试有数据。在信息下新建表单,指定数据集添加字段后,打开数据集没有数据
回复 支持 反对

使用道具 举报

发表于 2008-7-30 15:45:57 | 显示全部楼层
楼主13楼的问题,跟1-12楼说的不是一个问题吧,如果是,不要在一个帖子中问,要不会搞的很乱


8楼说,在查询分析器上运行脚本,10秒左右就有数据了,请问啥脚步呢?贴出来看看,
另外,感觉3000条记录,没有大字段,10S也不正常,你说的查询分析器,是在数据库上直接执行的,是吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-30 16:00:30 | 显示全部楼层
查询分析器  是在数据库上直接执行的。是同一个问题的,取数的时间不稳定,快的话5秒就有数据了,慢的话得10秒。
select c.xmbh,d.DLSMC as 代理商名称,d.KHMC as 客户名称,
       c.cpm as 租赁物名称,c.种类,c.台数,                                    
       d.ZLCBXX as 设备总价, d.SFKXX as 首付款,d.BZJXX as 保证金,            
       d.SXFXX as 手续费,(d.SFKXX+d.BZJXX+d.SXFXX) as 首次付款小计,           
       (d.ZLCBXX-d.SFKXX) as 融资额,                                          
       (c.YHKE*d.ZLQJ-d.ZLCBXX+d.SFKXX)as 利息总和,                           
       (c.YHKE*d.ZLQJ+100*c.台数)as 应收融资租赁款,                           
       (c.YHKE*d.ZLQJ-d.ZLCBXX+d.SFKXX+100*c.台数) as 未实现融资收益         
from                                                                  
(select  a.xmbh,b.cpm,substring(b.CPM,1,2) as 种类, sum(b.sl) as 台数,a.YHKE                                               
from FL_XYSHB_GRKH a  left join FL_XYSHCB1_ZLSBQK b on a.xmbh=b.xmbh   group by a.xmbh,b.CPM,a.YHKE) c                                                                     
left join FL_ZLHT_GRKH d  on c.xmbh=d.xmbh                             
left join FL_FHQRH e on c.xmbh=e.xmbh                                 
where e.QRRQ>='2007-07-30 00:00:00' and e.QRRQ<='2008-07-30 23:59:59'               
union all                                                              
select c.xmbh,d.DLSMC,d.KHMC,c.cpm,c.种类,c.台数,                     
       d.ZLCBXX, d.SFKXX,d.BZJXX,                                             
       d.SXFXX ,(d.SFKXX+d.BZJXX+d.SXFXX) as 首次付款小计,                     
       (d.ZLCBXX-d.SFKXX) as 融资额,                                          
       (c.YHKE*d.ZLQJ-d.ZLCBXX+d.SFKXX)as 利息总和,                           
       (c.YHKE*d.ZLQJ+100*c.台数)as 应收融资租赁款,                           
       (c.YHKE*d.ZLQJ-d.ZLCBXX+d.SFKXX+100*c.台数) as 未实现融资收益         
from                                                                  
(select  a.xmbh,b.CPM,substring(b.CPM,1,2) as 种类,sum(b.sl) as 台数,a.YHKE
from FL_XYSHB_GSKH a  left join FL_XYSHCB1_ZLSBQK b on a.xmbh=b.xmbh   group by a.xmbh,b.CPM,a.YHKE ) c                                                                     
left join FL_ZLHT_GSKH d  on c.xmbh=d.xmbh                           
left join FL_FHQRH e on c.xmbh=e.xmbh                                 
where e.QRRQ>='2007-07-30 00:00:00' and e.QRRQ<='2008-07-30 23:59:59'
回复 支持 反对

使用道具 举报

发表于 2008-7-30 16:20:09 | 显示全部楼层
怎么会这样呢(查询分析器  是在数据库上直接执行的。取数的时间不稳定,快的话5秒就有数据了,慢的话得10秒),在同一个数据库上直接执行同一个SQL,怎么有这么多差别呢,就你一个人在用吗?你查查数据库或者服务器本身的原因吧,例如是否有病毒,数据库的参数设置等等。

另外,这么复杂的SQL语句,还不如写存储过程直接返回一个结果集呢,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-30 16:22:18 | 显示全部楼层
结贴吧
回复 支持 反对

使用道具 举报

发表于 2008-7-30 16:23:36 | 显示全部楼层
你单独用这句在查询分析器中执行一下
select c.xmbh,d.DLSMC as 代理商名称,d.KHMC as 客户名称,
       c.cpm as 租赁物名称,c.种类,c.台数,                                    
       d.ZLCBXX as 设备总价, d.SFKXX as 首付款,d.BZJXX as 保证金,            
       d.SXFXX as 手续费,(d.SFKXX+d.BZJXX+d.SXFXX) as 首次付款小计,           
       (d.ZLCBXX-d.SFKXX) as 融资额,                                          
       (c.YHKE*d.ZLQJ-d.ZLCBXX+d.SFKXX)as 利息总和,                           
       (c.YHKE*d.ZLQJ+100*c.台数)as 应收融资租赁款,                           
       (c.YHKE*d.ZLQJ-d.ZLCBXX+d.SFKXX+100*c.台数) as 未实现融资收益         
from                                                                  
(select  a.xmbh,b.cpm,substring(b.CPM,1,2) as 种类, sum(b.sl) as 台数,a.YHKE                                               
from FL_XYSHB_GRKH a  left join FL_XYSHCB1_ZLSBQK b on a.xmbh=b.xmbh   group by a.xmbh,b.CPM,a.YHKE) c                                                                     
left join FL_ZLHT_GRKH d  on c.xmbh=d.xmbh                             
left join FL_FHQRH e on c.xmbh=e.xmbh                                 
where e.QRRQ>='2007-07-30 00:00:00' and e.QRRQ<='2008-07-30 23:59:59'               

我大概看了下,你那个union all后的语句跟 前面的语句是一样。。。为什么要重复取呢?
你可以测试一下,把 union all 改成union看看,查询结果应该只有1500了吧(看你上面说是3000)
回复 支持 反对

使用道具 举报

发表于 2008-7-30 16:25:13 | 显示全部楼层
楼主,怎么就揭帖了呢?
问题解决了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-30 16:35:02 | 显示全部楼层
union 后面跟前面的结构是一样的   但是是从不同的表中取的数据,两个连接起来的取的数据才是完整的
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 08:11 , Processed in 0.038041 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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