用不着代码,你还是将dbgrid指向一个临时表吧
将临时表的纪录循环插入你的主表!

解决方案 »

  1.   

    将dataset/table的curtype属性设为ctKeyset,locktype属性设为ltBatchOptimistic 。在提交的按钮中加入如下代码:
    dataset/table.UpdateBatch();即可
    取消用:CancelBatch()  明白了吗?
      

  2.   

    用缓冲.
    bde中:将table,query的cachedupdates:=true;
    在提交的按钮中加入:dataset.applyupdates;
                      dataset.commitupdates; //清除缓冲
    取消:dataset.cancelupdates;
      

  3.   

    如果是PARADOX数据库无法一次插入多条记录.SQL可以
      

  4.   

    用clientdataset
    applyupdate(0)
    ^_^
      

  5.   

    insert into 目标表 select * from 源表 where ...
      

  6.   

    我想在grid中先输入多条记录,然后一次提交(用按钮),请详细一点,最好有代码,我可以另外加分
      

  7.   

    代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       DbGrid1.ReadOnly:=False;
       Query1.Append;      
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      Query1.Close;
      Query1.Open;
      Dbgrid1.ReadOnly:=True;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
        Query1.CancelUpdates;  //取消修改
        DbGrid1.ReadOnly:=False;
    end;procedure TForm1.Button4Click(Sender: TObject);
    begin
       Query1.ApplyUpdates;
       Query1.CommitUpdates;//将数据由缓存写如数据库end;procedure TForm1.Query1UpdateRecord(DataSet: TDataSet;
      UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
    begin
        Try
           UpdateSql1.SetParams(ukInsert);
           UpdateSql1.ExecSQL(ukInsert);
           UpdateAction:=UaApplied;
        except
           Exit;
        end;
    end;