请教聚合函数导致的“超出系统资源”的问题(200分)

  • 主题发起人 locky707
  • 开始时间
L

locky707

Unregistered / Unconfirmed
GUEST, unregistred user!
写了一个程序,用的Delphi7.0+Access2003,实现读取Excel表中的数据,然后经过计算后将结果写入数据库,同时也写回到Excel表中。运行后计算结果正确,但是当Excel表中的纪录过多的时候,中途就会出现“超出系统资源”错误。经过反复测试,发现是在重复运行SQL语句的聚合函数sum多次后就会出现这个错误,导致出现错误的主要代码如下:<br>with ADOQuery2 do<br>&nbsp; &nbsp;begin<br>&nbsp; &nbsp;close;<br>&nbsp; &nbsp;SQL.Clear;<br>&nbsp; &nbsp;SQL.Add('select sum(金额) as 合计');<br>&nbsp; &nbsp;SQL.Add('from 表1 inner join 表2);<br>&nbsp; &nbsp;SQL.Add('where 员工号码 like "'+edit2.Text+'"');<br>&nbsp; &nbsp;SQL.Add('and 日期 like "'+edit3.Text+'"');<br>&nbsp; &nbsp;SQL.Add('and 类型 like "'+combobox1.Text+'"');<br>&nbsp; &nbsp;open;<br>&nbsp; &nbsp;end;<br>在将上述代码循环运行到一千多次后就会出现超出“系统资源错误”,而普通的不带聚合函数的select查询则不会出现错误,代码貌似没什么错误,也可以排除机子硬件的问题,是不是ADOQuery控件本身的限制?还是OLE DB Provider的bug?或是操作系统的问题?总之是百思不得其解,目前用循环累加的办法求和,取代上面的SQL语句求和,运行一切正常。究竟在哪里出错,求高手指点!!
 

Similar threads

S
回复
0
查看
955
SUNSTONE的Delphi笔记
S
S
回复
0
查看
777
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部