mettable.Edit ;
   num:=mettable.fieldbyname('MeetingNo').asinteger;
   mettable.Delete ; contable.open;                          //删除con
 contable.edit;
 contable.First ;
 while not conTable.eof   do
  begin
   if contable.fieldbyname('MeetingNo').asinteger=num then
   begin
    contable.Delete;
   end;
  conTable.next;
  end; deletable.open;                             //删除表dele 
 deletable.edit;
 deletable.First ;
 while not deleTable.eof   do
  begin
   if deletable.fieldbyname('MeetingNo').asinteger=num then
   begin
    deletable.Delete;   end;
   deleTable.next;
  end;
请大家看下,为什么不可以这样删除,如果是与meetingno相同的行有多个的话可能删不完整,可能也会出现说影响到多行的值,不能执行数据更新还有什么好方法可以删除吗?

解决方案 »

  1.   

    delete后不要next了,因为delete后已经自动到下一条记录了。
    应该这样:if contable.fieldbyname('MeetingNo').asinteger=num then
                contable.Delete 
              else  
                conTable.next;
      

  2.   

    哦。。这样啊。。怪不的老是删不完整,但是不用.next,怎么能达到eof呢?不删的时候它也会自动移到下一条吗?