要用循环向数据库中添加数据。把with adoquery1 do 写在循环里边好不好?
执行效率?
for i:=0 to 1000 do
begin
……
   with adoquery1 do
   begin
   ……
   end;
end;
这样的效率好不好?

解决方案 »

  1.   

    可以,如果是sqlserver数据库可以一次执行多条语句.
      

  2.   


     locktype  設為BATCH模式,然後提交,會更好點。
      

  3.   

    建议不用edit,post操作,用sql语句直接操作数据库那样效率高
      

  4.   


    function GenerateSQL:TStrings;
    begin
      Result:=TStringList.Create;
      for i:=0 to n do
      begin
        Result.Add('Insert XXXXXXXXXXXXXXXXXXXXXXXX');
      end;
    end;function RunSQL:Boolean;
    var
      Sqls:TStrings;
    begin
      Sqls:=GenerateSQL;
      Result:=False;
      try
        With AdoQuery1 do
        begin
          Close;
          Sql.Clear;
          Sql:=Sqls;
          Execsql;
        end;
        Result:=True;
      except
      end;
    end;
      

  5.   

    //更正一下
    function RunSQL:Boolean;
    var
      Sqls:TStrings;
    begin
      Sqls:=GenerateSQL;
      Result:=False;
      try
        With AdoQuery1 do
        begin
          Close;
          Sql.Clear;
          Sql:=Sqls;
          Execsql;
        end;
        Result:=True;
      finally
        Sqls.Free;//忘记释放sqls了
      end;
    end;
      

  6.   

    with写在里面写在外面几乎一样,多次执行,记得写之前开事务就好了。