はじめまして,私DB初心者と申します.
Delphi Ver7.0で、TQueryを用い、MSAccess2000のテーブルに
接続しようとしています。
SQLでPOSTし、テーブルに更新をかけるときに
「EDBEngineErrorクラスの例外'テーブルは書き込み禁止です'」となり、
レコードの追加や削除ができません。
With Query1 do begin
Close;
SQL.Clear;
SQL.ADD(SQLDelRec);
Open;
Edit;
Post;
テーブルの参照はできるのですが、追加・変更・削除ができない状態です。
どのように記述すれば宜しいのでしょうか?よろしくご教授お願いします。
TADOConnection
+TADOQueryだと
ヘルプに使い方が載っています。
Query1.Edit;は使ったことないのですが、通常は更新、削除、追加などを実行す売る場合Query1.ExecSQLをしようするのがよいと思います。
先の例では、Open; Edit; Post;を、悪いことはいいませんQuery1.Prepare; Query1.ExecSQL;に変更してください。
ADO さん、ヨーダ さん、ありがとうございます。
Query1.Open;
Query1.Edit;
Query1.Post;
は単一方向のSQL実行時のみ有効だったんですね。
登録時は Query1.Append → Query1.Post
変更時は Query1.Edit → Query1.Post
削除時は(Query1.Prepare)→ Query1.ExecSQL;
で実行できました!!ありがとうございました。
QueryのRequestLiveはtrueになっていますか?
Select文が複テーブルの場合は、TUpdateSQLを使用します。
ツイート | ![]() |