Delphi 异常事件后的DBGrid行为

Delphi 异常事件后的DBGrid行为,delphi,delphi-5,Delphi,Delphi 5,我需要帮助解决以下问题。我使用以下组件类型实现了一个可编辑的DBGrid:TQuery、TDataSource、TUpdateSQL、TDBGrid。QueryAfterPost事件处理程序将更改应用于数据库 procedure TCardForm.Query2AfterPost(DataSet: TDataSet); begin Query2.ApplyUpdates; end; 因此,如果我在DBGrid中编辑一行并移动到另一行或按下向下箭头键,我所做的更改将应用于数据库。除了一个例外

我需要帮助解决以下问题。我使用以下组件类型实现了一个可编辑的DBGrid:TQuery、TDataSource、TUpdateSQL、TDBGrid。QueryAfterPost事件处理程序将更改应用于数据库

procedure TCardForm.Query2AfterPost(DataSet: TDataSet);
begin
  Query2.ApplyUpdates;
end;
因此,如果我在DBGrid中编辑一行并移动到另一行或按下向下箭头键,我所做的更改将应用于数据库。除了一个例外,一切正常。当输入不正确的值时,将引发数据库异常并显示一条消息,例如“Column…cannote NULL”。在消息框中单击OK之后,应用程序允许我浏览DBGrid并转到另一行,而无需尝试应用更改,也无需再次显示异常消息。仅当我编辑另一行或再次编辑同一行时,它才会显示异常消息。我不希望应用程序允许我这样做。我希望在输入正确的值之前,不可能移动到DBGrid中的另一行


提前感谢您的回答

您很可能应该在try-except块中处理错误。或在发布到数据库之前验证条目

procedure TCardForm.Query2AfterPost(DataSet: TDataSet);
begin
  Query2.ApplyUpdates;
end;