out of memory (急!)
我从文本文件中读取数据,加到sql数据库中.数据很大,有一万多条记录.
我试了几中方法,其中有两种都会出现 out of memory 这样的现象,只有一种不出现(但是执行速度满了一点).
前两种是这样的:一为:每条记录写一个新增语句放到strsql,
SQL_STR:=SQL_STR+strsql+' ';
ADOQuery1.SQL.Text:=SQL_STR;
ADOQuery1.ExecSQL;
二为:与第一种比较像,如果记录超过6000条,分开两段写最后的SQL_STR,SQL_STR1,试过
用另个str=SQL_STR+SQL_STR1
ADOQuery1.SQL.Text:=str;
或者分开执行,但是都出现过out of memory 这样的现象
一般第一次执行的时候不会出现,但是连续两次执行就会出现这样的错误.
不会出现错误的:
每条记录写一个新增语句放到strsql,然后每条记录都执行一次
ADOQuery1.SQL.Text:=strsql;
ADOQuery1.ExecSQL;
但是这种方法太慢了。请问各位大虾,有什么好的解决方法吗?
[解决办法]
感觉你的第一,二种没什么区别,就是在delphi内用了两个不同的变量而已,应该是构建6000条数据的SQL语句后就执行一次,然后再重新构建下一个6000条的SQL语句,当然,也可以不用6000,用个1000,2000之类的,保证比只一条执行一次要效率得多,而且程序也不会感觉很长时间没反应。
[解决办法]
楼主为什么非要1w多条记录插入一次呢,楼主可以没1000条插入一次数据库,这样str的长度就不回太大了