从数据库中查询到的数据存放在一个TQuery中,现在想把此数据存放到一个Access表中,此Access表和一个TQuery关联,我是这样做的
    //保存数据;
            OraQuery.First;
            while(not OraQuery.Eof) do
            begin
                 
                 QryErr.Edit;
                 QryErr.Append;
                 for j:=1 to OraQuery.FieldCount-1 do
                 begin
                     QryErr.FieldValues[QryErr.Fields.Fields[j].FieldName]:=
                     OraQuery.FieldValues[OraQuery.Fields.Fields[j-1].FieldName];
                 end;
                OraQuery.Next;
            end;
            if(QryErr.Modified ) then QryErr.Post ;//保存但是发现这样保存速度很慢,各位有什么好的方法?

解决方案 »

  1.   

    用tbatchmove 控件
    或用sql 语句:
    insert into tblname_a select * from tblname_b
      

  2.   

    我的数据是从Tquery中导出到另外的表中,这样的话用Insert的话还是只能一条一条的插入。
    用TbatchMove应该可以整批的导入。
      

  3.   

    insert into tablename select * from othertablename
      

  4.   

    对,用SQL的inert语句,快……
      

  5.   

    我的数据是从Oracle 取得的,存放在一TOraQuery中,不能用BatchMove的方式,如果用Insert语句实现的话,好象只能一次一条的写,象如下形式先把每条记录的值组合成一条SQL,再用插入的方式执行,这样好象速度还是很慢的。
     
                   for j:=1 to OraQuery.FieldCount-1 do
                     begin
                        strval:=strval+        
                         OraQuery.FieldValues[OraQuery.Fields.Fields[j-1].FieldName]+;
                     end;
                   SQL:='insert into tablename values('+strval+')';