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