顺便说一句,既然你是在保存的时候检查,就不需要在插入时候做动作了,所有逻辑都在导航条的保存按钮上实现就可以了。参考代码如下
var
i integer;
lBookMark :String;
begin
// 在这里加上一句判断是否是保存按钮
i:=0;
lBookMark := DataSetBroker1.DataSet.Bookmark;
DataSetBroker1.DataSet.DisableControls;
DataSetBroker1.DataSet.First;
while not DataSetBroker1.DataSet.Eof do
begin
if DataSetBroker1.DataSet.FieldByName('sl').AsInteger = 1 then
i:=i+1;
DataSetBroker1.DataSet.next;
end;
if i>1 then
begin
dialogs.ShowMessage('已经超出一条了');
Accept := False;
DataSetBroker1.DataSet.Bookmark :=lBookMark;
DataSetBroker1.DataSet.EnableControls;
sysutils.Abort;
end;
DataSetBroker1.DataSet.Bookmark :=lBookMark;
DataSetBroker1.DataSet.EnableControls;
end;