2

次の問題について助けが必要です。TQuery、TDataSource、TUpdateSQL、TDBGrid のコンポーネント タイプを使用して、編集可能な DBGrid を実装しました。Query AfterPost イベント ハンドラーは、変更をデータベースに適用します。

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

したがって、DBGrid の行を編集して別の行に移動するか、下矢印キーを押すと、行った変更がデータベースに適用されます。1 つの例外を除いて、すべて正常に動作します。正しくない値が入力されると、データベース例外がスローされ、「列 ... は NULL にすることはできません」などのメッセージが表示されます。メッセージ ボックスで [OK] をクリックすると、変更を適用したり例外メッセージを再度表示したりすることなく、DBGrid を参照して別の行に移動できます。別の行を編集するか、同じ行を再度編集する場合にのみ、例外メッセージが表示されます。アプリケーションでそれを許可したくありません。正しい値を入力するまで DBGrid の別の行に移動できないようにしたい。

ご回答ありがとうございます。

4

1 に答える 1

0

ほとんどの場合、try except ブロックでエラーを処理する必要があります。または、データベースに投稿する前にエントリを検証します。

于 2012-10-16T14:25:29.643 に答える