批量删除的时候 切记不要用下面的代码:

procedure TfrmMain.WeiXuanZhongDelete_btnClick(Sender: TObject);
begin
frmDataDm.WeiTopTradeShow_adoq.First;
while not frmDataDm.WeiTopTradeShow_adoq.Eof do
begin
ShowMessage(frmDataDm.WeiTopTradeShow_adoq.FieldByName('top_trade_id').AsString);
if frmDataDm.WeiTopTradeShow_adoq.FieldByName('top_xuanzhong').AsBoolean then
begin

frmDataDm.WeiTopTradeShow_adoq.Delete;//因为这里删除的时候,表格里的内容已经自动删除,指针已经指向了下一条,下面的又下一条,则会遗漏一条,所以要改下
end;
//下一行
frmDataDm.WeiTopTradeShow_adoq.Next;//这里再下一条就会遗漏一条
end;
end;

 

procedure TfrmMain.WeiXuanZhongDelete_btnClick(Sender: TObject);
begin
frmDataDm.WeiTopTradeShow_adoq.First;
while not frmDataDm.WeiTopTradeShow_adoq.Eof do
begin
if frmDataDm.WeiTopTradeShow_adoq.FieldByName('top_xuanzhong').AsBoolean then
begin
//删除
frmDataDm.WeiTopTradeShow_adoq.Delete;//如果删除了就不会再下一条了,指针会自动指向下一条
end else begin
//下一行
frmDataDm.WeiTopTradeShow_adoq.Next;
end;
end;
end;



posted on 2012-01-26 12:23  del88  阅读(7)  评论(0编辑  收藏  举报