ADODataSet 中有上万条记录要存入数据库中,
我开始这样写,但程序一直运行,导致界面无响应了!for i:=0 to ADODataSet.RecordCount-1 do
begin
  ADODataSet1.Append;
  ...
  ...
  ..
  ADODataSet1.post
end;
有没有比较快点的存入数据库的方法,无响应是不是要用多线程解决啊!

解决方案 »

  1.   

    10000条记录从哪里来的是否可以使用OpenDataSource/OpenRowset 进行连接,然后使用insert into ...select ....来实现数据的插入
      

  2.   

    ADODataSet上万条记录,大部分字段是从一个a表读出,但其他几个字段是根据a表字段分析出来,所以用insert into ...select会比较麻烦,程序改动比较多。 还有请问哪个界面无响应怎样解决比较好!?
      

  3.   

    把结果集内所有的数据遍历一遍,拼成一条INSERT语句,一并执行!
    另外也可以用MSSQL的bcp、OpenRowSet等语句来实现
      

  4.   

    哪来的这么多条记录,用INSERT插入
      

  5.   

    如果可以用SQL语句完成就直接全部用SQL语句。否则就先将每个Insert SQL语句生成,保存到List 中,然后放在线程中一条条的执行什么样的业务会一下子读取这么多的记录,然后又要一下子写回去呢?技术上就这些办法。
    先从设计上解决一下。