今年もよろしくお願いいたします。鈴木です。
現在、Firebird Embedded版を使用してローカルDBにアクセスするVCLプログラムを作成しています。DBへのアクセスにはDelphiに付属していたFireDACを使用しています。
プログラムではテーブルの内容をTFDQueryを経由して取得し、TDBCtrlGridに貼り付けたDBコントロールに表示しています。
TFDConnection - TFDQuery - TDataSource - TDBCtrlGrid
新規レコードの追加はしたくないので、TFDQueryのプロパティを、オブジェクトインスペクタから変更しました。
「TFDQuery.UpdateOptions.EnableInsert」を「False」へ変更
この状態で、最後のレコードを表示中に「↓キー」を入力すると(またはスクロールバーの▼ボタンをクリック)、新規レコードの追加処理を呼び出してしまうようで、次の例外が発生してしまいます。
[FireDAC][Comp][DS]-214. データセット [T_TestQry] のレコードの挿入はできません.
この例外を出さないようにするにはどのようにすれば良いでしょうか。
例外を補足して無視する方法でもかまいません。
DBCtrlGridのOnKeyDownイベントでKeyに0を設定して、キー入力自体をなかったことにしようとしてみたのですが、うまく動作しませんでした。
procedure TForm1.DBCtrlGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if T_TestQry.Active then begin
if T_EqTelegQry.Eof then begin
Key := 0;
end;
end;
end;
何かヒントでもいただけると助かります。
よろしくお願いいたします。
■開発環境
Windows 10 Pro 64bit
Delphi 10.2.1 Tokyo
Firebird 2.5.7 Embedded
MLホームページ:
https://www.freeml.com/delphi-users
----------------------------------------------------------------------
Powered by freeml --
https://www.freeml.com/ --
------------------------------------------------------[freeml byGMO]--
あなたの街のチラシがいつでも無料で見放題!
チラシをクリックしてチラシが拡大されたらポイントゲット♪
まずはかんたん登録♪ -ポイントタウン-
https://www.pointtown.com/ptu/rd.cgi?cid=8912
----------------------------------------------------------------------