你用TFile类或TStrings类装入文本不就到内存中了吗?

解决方案 »

  1.   

    不用写程序,你会用Access就可以了
      

  2.   

    你一条执行一次INSERT肯定慢啦文本格式和库结构一样话可以用楼上说的,还有SQLSERVER带的导入导出蛮快的
    用BDE的话也可以用BACTHMOVE
    要是结构不同可以用缓存更新模式,一条一条写进缓存模式的query中,然后一起提交,会快一点
      

  3.   

    同楼上,access有从文本倒入数据的选项,再用oracle进行数据转换即可
      

  4.   

    to:军军
      我用的是bde.考虑使用bde来处理.使用batchmove如何加快速度?
      

  5.   

    直接做个批处理
    用sqlloader不就得了
      

  6.   

    var 
        TextList:Tstringlist;
        LineStr:string;
        LineNo:integer;
    begin
      Textlist:=Tstringlist.create;
      if opendialog1.Execute then
      begin
        Textlist.LoadFromFile(opendialog1.filename);
        LineNo:=0;
        while LineNo<TextList.Count do
        begin
          LineStr:=Textlist[LineNo];
          Table1.InsertRecord(Copy(LineStr,1,4),Copy(LineStr,5,10),Copy(LineStr,16,10));
          Inc(LineNo);
        end;
      end;
      TextList.Free;
    end;
    试试吧.
      

  7.   


    1.首先要删掉索引,如果有索引的话速度会很慢2.使用SQLLoader从文本中导入最合适,速度会很快。
      

  8.   

    我原来是读取文本信息,一条一条的组成sql语句插入的.我现在想一次性的插入数据到数据库中(用程序实现).
      这个是我程序中的一部分,同时,也不可能删除索引.
      

  9.   

    1。你数据量有多大?不超过50万的话,只要你程序写得好,10来分钟可以搞定;
    2。如果数据量太大(我做过1000万以上的),建议封装SQL LOADER,速度奇快;
    3。删掉索引,增大表空间,尤其注意回滚段,如果数据量大,回滚段会越来越大,速度会越来越慢。要不每插入1%提交一次;
    4。一次性的插入数据到数据库,可采用链表结构实现,但DELPHI中实现比较麻烦,我用PRO C实现就非常方便,速度也很快。以上经验,或许有用。
      

  10.   

    各位仁兄,如何封装sql loader呢?
      

  11.   

    各位仁兄,如何封装sql loader呢?
      

  12.   

    我原来是读取文本信息,一条一条的组成sql语句插入的.我现在想一次性的插入数据到数据库中(用程序实现).
      这个是我程序中的一部分,同时,也不可能删除索引.
      

  13.   

    我原来是读取文本信息,一条一条的组成sql语句插入的.我现在想一次性的插入数据到数据库中(用程序实现).
      这个是我程序中的一部分,同时,也不可能删除索引.