while not eof do 他是一个读取过程?还是什么?
while not eof do 
  begin  
    edit;
    FieldByName('shen').AsString:='是';
    next;
    post;
  end;
  
当然前面还有一条with ..do..begin。。我就不写拉~~这样循环修改字段shen中的数据有错没有??
我写的时候弹错误了。。是不是while not eof do 只是读取过程。不能进行添加,修改或者删除??~~如果我想循环修改的。。或者批量修改的时候。。应该用什么?还有批量删除(delete from table where ...)这句SQL只要一用就错误。。

解决方案 »

  1.   

    错误是什么,一般是先保存Post,然后再Next,我照着写了一下,没有测试:  while not Qry.Eof do 
      begin  
        Qry.Edit;
        Qry.FieldByName('shen').AsString:='是';
        Qry.Post;
        Qry.Next;
      end;
      

  2.   

    谢谢SuperTitan007(我是泰坦,我怕谁!)  and SQLDebug_Fan(接分生娃开宝马--珠珠)
    噢~~先POST next是对的还一个问题就是也是关于他的删除
    代码如下while not eof do
      begin
        delete;
        next;
      end;
    弹出错误说键列信息不足或不正确。更新影响到多行;为什么?
      

  3.   

    while not qry.eof do
    begin
      qry.delete;
      qry.next;
    end;
      

  4.   

    刚设置主键忘记保存了
      可以是可以删除了。。但是只能删除一条信息。。  with dm.aq_D_T_dan do
        begin
          close;
          sql.clear;
          sql.add('select D_ID from D_dan where D_ID = '''+edit3.text+'''');
          open;
          if recordcount = 0 then
            D_dan.Close
          else
            begin
              close;
              sql.clear;
              sql.add('select D_B_ID from D_B_dan where D_B_ID = '''+edit3.text+'''');
              open;
              if recordcount = 0 then
                begin
                  if messagedlg('未保存,确定要退出吗?退出后将删除未保存信息!',mtconfirmation,[mbyes,mbno],0)=6 then
                    begin
                      close;
                      sql.clear;
                      sql.add('select D_id from D_Dan where D_ID = '''+edit3.text+'''');
                      open;
                      while not eof do
                        begin
                          delete;
                          next;
                        end;
                      D_dan.Close;
                    end;
                 end
              else
                D_dan.Close;
            end;
        end;
    end;这是整条代码。。D_dan中的D_id和D_B_dan中的D_B_id的值是相同的。可是我点击后只能删除D_dan中的一条记录。。不能把D_dan中D_id等于edit3中的所有记录删除。。
      

  5.   


    可是可能出现多条信息?不用NEXT可以直接删除吗?
      

  6.   

    while not qry.eof do
    begin
      qry.delete;
    end;
    就可以啦,当然删除多行,while是个循环啊,删除一行,重于后面的往上补,一直删到空
      

  7.   

    删除的时候会自动下一条记录不用NEXT了