小弟现在想把查找出来的表格控件中的多条记录全部删除,并将里面记录写进另外一个表中
不知道该怎么写啊!!!
小地以前的代码是:
procedure TForm1.Button2Click(Sender: TObject);
       var str:string;
  a,b,c,d,e,f,g:string;
begin
    a:=query1.Fieldbyname('recmac').AsString;
    b:=query1.Fieldbyname('spname').AsString;
    if query1.Eof then
    begin
    application.MessageBox('没有可删除的记录。','删除');
    Button2.Enabled:=false;
    exit;
    end;    str:='确实要删除用户'+trimright(query1.fieldbyname('recmac').AsString)+'?';
    if Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES then
         query1.Delete;    if query1.Eof then
    Button2.Enabled:=false;end;这样只能删除一条
希望大哥帮忙啊,不然今天又要加班了哦!!!

解决方案 »

  1.   

    while not Query1.Eof then
    beign
     ...
      query1.next;
    end;
      

  2.   

    if Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES then
    begin         
      while not Query1.Eof then query1.Delete;
      {不需要Next,因为删除后会自动指向下一条记录}
    end;
      

  3.   

    rouqing(*冰雨&双子座奇缘*) 的可以
    或者直接用sql语句
      

  4.   

    procedure TForm1.Button2Click(Sender: TObject);
           var str:string;
      a,b,c,d,e,f,g:string;
    begin
        a:=query1.Fieldbyname('recmac').AsString;
        b:=query1.Fieldbyname('spname').AsString;
        if query1.RecordCount = 0 then
        begin
          application.MessageBox('没有可删除的记录。','删除');
          Button2.Enabled:=false;
          exit;
        end;    str:='确实要删除用户'+trimright(query1.fieldbyname('recmac').AsString)+'?';
        if Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES then
        begin         
          while not Query1.Eof then query1.Delete;
          Button2.Enabled:=false;
        end;
    end;
    你试试吧end;
      

  5.   

    procedure TForm1.Button2Click(Sender: TObject);
    begin
        query1.first;        while not query1.eof do
        begin 
            str:='确实要删除用户'+ Trim(query1.fieldbyname('recmac').AsString) + '?';
            if Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES then
                query1.Delete
            else
                query1.Next;
        end;    if query1.Eof and query1.bof then
            Button2.Enabled:=false;
    end;
      

  6.   


    query1.SQL.add('Select * into new_Table_Name from table_Name for Delete where ....');
    query1.open;
      

  7.   

    小弟具体的需求是将query1查出来的记录删除掉,并且要把查出来记录的两个字段,加入到新的表中。
    另外的表用的是query2.
      

  8.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      a,b:string;
    begin
        query1.first;        while not query1.eof do
        begin
            a:=query1.Fieldbyname('recmac').AsString;
            b:=query1.Fieldbyname('spname').AsString;
            //在此把a、b的值插入到新表中,或者做其他的处理
            str:='确实要删除用户'+ Trim(a) + '?';
            if Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES then
                query1.Delete
            else
                query1.Next;
        end;    if query1.Eof and query1.bof then
            Button2.Enabled:=false;
    end;