我正在使用 Dephi 10.1 Berlin 和 Access 2013。
我的问题与TADODataSet.Cancel()
.
我想在发布前向我的用户显示一个消息框,要求确认,以防数据被修改。
在TADODataSet.BeforePost
事件中,我添加了以下代码:
if Application.MessageBox('Save changes?', '', 52) = idNo then
ADODataSet1.Cancel;
如果用户点击btnNo
,就会发生意想不到的事情。
从当前记录中取消更改,但会创建一个所有字段为空的新记录。
唯一包含一些数据的字段是用户先前修改过的字段。
如果我通过 的取消按钮取消修改TDBNavigator
,一切都很好。
如果我模拟单击事件中的取消TDBNnavigator
按钮BeforePost
:
if Application.MessageBox('Save changes?', '', 52) = idNo then
DBNavigator1.BtnClick(nbCancel);
我有同样的行为,所以创建了一个新的空记录。
有什么建议吗?