怎样删除刚刚添加到DBGrid里的几条新记录?

sdzbbz 2006-09-14 06:43:40
用ADOQuery连接的数据库,举个例子说一下:
现在收到数据后自动添加到数据库里,因为需要的可能是n条数据,但是只收到了i条数据,并且是收到一条后立刻添加到数据库里,接收完了以后做判断如果i<n,那么就把刚刚添加到数据库的这i条新记录统统删除,重新再调数据。
问题:现在假设i<n,那么用什么语句能把刚刚添加的i条记录删除掉呢?可否写出代码?谢谢大家!!!
...全文
161 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdzbbz 2006-09-15
  • 打赏
  • 举报
回复
多谢楼上的
samcrm 2006-09-14
  • 打赏
  • 举报
回复
可利用ADO控件的缓存特性实现:
设置ADOQuery1的LockType属性为ltBatchOptimistic;

procedure TForm1.Button1Click(Sender: TObject);
begin
if i=n then ADOQuery1.UpdateBatch
else ADOQuery1.CancelBatch;
end;
sdzbbz 2006-09-14
  • 打赏
  • 举报
回复
用了楼上的代码,作了一下实验,结果是这样的:
本来应该收5条数据,收了2条以后再也没有了,经判断后居然把我数据库里的信息全给删掉了,这是为何呀????
nobody00 2006-09-14
  • 打赏
  • 举报
回复
把光标指在最后一条记录上,用下面代码就可以了:
for i:=ADOQuery1.RecordCount downto ADOQuery1.RecordCount-i+1 do
ADOQuery1.Delete;

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧