现在有一个dbgrid,从数据库里面显示了几行数据,现在我用一个删除按钮,点击删除按钮就删除选中的那一行数据,还有一个保存按钮和一个取消按钮,如果不点保存,点取消退出窗体,那么,我开始点的那一行数据还要在数据库里,我应该怎么样做.
请教各位大侠,小弟先谢谢了.
如果上面说得不清楚,请看下面的链接.问题如下面链接所示
http://bsmqu.51.net
请教各位大侠,小弟先谢谢了.
如果上面说得不清楚,请看下面的链接.问题如下面链接所示
http://bsmqu.51.net
调试欢乐多
如果是BDE,设为BatchUpdate(应该是这个吧),不要ApplyUpdate
如果是ADO,也有一个相应的属性。
DbGrid1.DataSource.Dataset.delete;
我就拿ADO为例:
adoquery.cancel;就可以了
我现在还只是一个菜鸟,请写一句两句的提示一下.谢谢了
with ADOTable1 do
begin
Try
if Application.messagebox(pchar('是否删除标题为:'+'" '+FieldByName('cTitle').AsString+' "'+#13+'的竞争新动态资料?'),'系统提示',MB_OKCancel + MB_DefButton2 +
MB_IconQuestion + MB_ApplModal) = IdCancel then
exit;
delete;
Application.messagebox('删除成功!','系统提示',MB_Ok+MB_ICONINFORMATION+MB_ApplModal);
except
on e: Exception do
begin
Cancel;
Application.messagebox(Pchar('删除失败:'+ #13+ e.message),'系统提示',MB_Ok+MB_ICONEXCLAMATION+MB_ApplModal);
end;
end;
end;
设置adoquery的LockType=ltBatchOptimistic;
//删除执行代码
adoquery.delete;//保存执行代码
adoquery.UpdateBatch;
//取消执行代码
adoquery.CancelBatch;
可以解决你的问题 给分
可以让你删除多行都可以取消的
"保存"时 commit;
"取消"时 rollback;