我要把汇总的数据Insert表中,用While not eof 一条条的Insert 速度太慢,有没有更好的方法?

解决方案 »

  1.   

    orasession.autocommit :=trueWith SmartQueryTemp do
            begin
                Close;
                Session :=OraSession1 ;
                Sql.Clear;
                Sql.Add(Cmd);
                Open;
                While Not eof do
                begin
                    OraLoader.PutColumnData(0,i,Fields[0].AsString);
                    OraLoader.PutColumnData(1,i,Fields[1].AsString);
                    OraLoader.PutColumnData(2,i,Fields[2].AsString);
                    OraLoader.PutColumnData(3,i,Fields[3].AsString);
                    OraLoader.PutColumnData(4,i,Fields[4].AsString);
                    OraLoader.PutColumnData(5,i,Fields[5].AsString);
                    OraLoader.PutColumnData(6,i,Fields[6].AsString );
                    OraLoader.PutColumnData(7,i,Copy(Table,3,8)) ;
                    GetCWDM(Fields[3].AsString);
                    OraLoader.PutColumnData(8,i,Cwdm );
                    OraLoader.PutColumnData(9,i,Fields[7].AsString );
                    OraLoader.PutColumnData(10,i,Fields[8].AsString );
                    OraLoader.PutColumnData(11,i,Fields[9].AsString );
                    OraLoader.PutColumnData(12,i,Fields[10].AsString);
                    OraLoader.PutColumnData(13,i,Fields[11].AsString);
                    OraLoader.PutColumnData(14,i,Fields[12].AsString);
                    Next;
                end;
            end;
    end;
    为何如终只提交一条记录??吐血帮帮忙!!!!!
      

  2.   

    you can you bcp,please look help about bcp or bulk into!
      

  3.   

    你在循化里面对数据库的字段赋值以后
    应该是提交以后在继续循环的吧也就是在你的next的前面加上post试试看呢
      

  4.   


    commit 后还是提交了一条记录!!!!