Ado内存泄漏问题(200分)

  • 主题发起人 主题发起人 xbdliyu
  • 开始时间 开始时间
X

xbdliyu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用adoQuery 放在循环里执行insert,不管最后是否excesql,内存泄漏严重.
for i:=0 to sg1.RowCount-1 do
begin
s:='';
Q3.Close;
Q3.SQL.Clear;
Q3.SQL.Add('insert into LSWLDW(LSWLDW_WLDWBH,LSWLDW_DWMC,LSWLDW_JC,LSWLDW_DQBH,LSWLDW_DWLB,LSWLDW_DWXZ,LSWLDW_NBDW,LSWLDW_TYBZ,layer,Isdetail,BestShipPoint,ShipToPoint,LSWLDW_QSRQ) ');
Q3.SQL.Add('values('''+DWQZ+sg1.Cells[0,i]+''','''+sg1.Cells[1,i]+''','''',');
Q3.SQL.Add(''''+s+''','''+DWQZ+sg1.Cells[2,i]+''',''11'',''0'',''0'',1,''1'','''','''',');
Q3.SQL.Add(''''+copy(ND,1,4)+'0101'')');
Q3.ExecSQL;
Q3.SQL.Clear;
Q3.Close;
end;
 
...............

Q3.SQL.Clear;
Q3.Close;
 
第一次听说 ADO内存泄漏,楼主把其它问题归究于泄漏吧
 
中间断开connection,重新链接然后插入试试呢?
 
这个应该不会吧,都很成熟的控件了,我的没有发现
 
for i:=0 to sg1.RowCount-1 do
begin
s:='';
Q3.Close;
Q3.SQL.Clear;
Q3.SQL.Add('insert into LSWLDW(LSWLDW_WLDWBH,LSWLDW_DWMC,LSWLDW_JC,LSWLDW_DQBH,LSWLDW_DWLB,LSWLDW_DWXZ,LSWLDW_NBDW,LSWLDW_TYBZ,layer,Isdetail,BestShipPoint,ShipToPoint,LSWLDW_QSRQ) ');
Q3.SQL.Add('values('''+DWQZ+sg1.Cells[0,i]+''','''+sg1.Cells[1,i]+''','''',');
Q3.SQL.Add(''''+s+''','''+DWQZ+sg1.Cells[2,i]+''',''11'',''0'',''0'',1,''1'','''','''',');
Q3.SQL.Add(''''+copy(ND,1,4)+'0101'')');
Q3.ExecSQL;

end;

我也没有遇到过,你试下这样的代码会不会泄露
 
用一个变量来保存 sql语句
然后q3.sql.add()一次;
q3.sql.execsql; 试试!
 
我很想知道楼主是怎么知道内存泄露就一定是 ADO 造成的?
 

还没结帖呢?
一个星期前偶不就指出了吗?

所谓的内存泄露,只要不是用的新三方控件,用的标准控件和稳定的三方控件,那都是自己的问题

本人觉得,出了问题要首先找自己的问题,而不是把问题推卸给他人
 
何为内存泄漏估计还没搞清楚。。。
 
回来看看.貌视楼上是针对我的
算了,话说清楚好
"所谓的内存泄露,只要不是用的新三方控件,用的标准控件和稳定的三方控件,那都是自己的问题"
偶这句话并不是用来说明什么叫内存泄露的,请正确理解

内存泄露通常是由于引用了已释放的对象内存空间地址或未及时释放引起

待高手继续补充
 

Similar threads

后退
顶部