我的程序片段如下:
..........
frmData.ADOQ.First;
while not frmData.ADOQ.Eof do
begin
......
//以上为处理一条记录 //此处删除上面处理的记录<请问此处的代码应如何写呢?>
......
end;
..........
frmData.ADOQ.First;
while not frmData.ADOQ.Eof do
begin
......
//以上为处理一条记录 //此处删除上面处理的记录<请问此处的代码应如何写呢?>
......
end;
也不用什麼 next!
问题在于我用adoq.delete(adoquery.delete)的时候会使处理的记录少于实际要处理的记录,请问这是什么原因啊?
不要adoq.delete(adoquery.delete)
..........
frmData.ADOQ.First;
while not frmData.ADOQ.Eof do
begin
......
//以上为处理一条记录 frmData.ADOQ.Delete;
frmData.ADOQ.Next;
......
end;这样有一个问题,那就是:处理的记录少于实际要处理的记录请问这是什么原因呢?
http://expert.csdn.net/Expert/topic/2322/2322518.xml?temp=.6835901
处理的记录少于实际要处理的记录 是什么意思
用不然
adoquery.last;
从最后的记录开始处理。
frmData.ADOQ.Next;
......
end;这样有一个问题,那就是:处理的记录少于实际要处理的记录
----------------------------------------------------------
肯定啦,不要那句:frmData.ADOQ.Next;就行了。
因为数据库的记录是在变动的,若处理完成后再一起删除好象很麻烦啊
frmData.ADOQ.Delete,刪除紀錄後,數據集裡面就不存在該紀錄了,指針會自動指向下一紀錄。當你刪到紀錄結尾的時候,.eof一樣會為真,就跳出循環。這些知識應該來說很基本了。建議樓主多看看書。