DBEでAccessのテーブルにアクセスするには?

解決


DB初心者  2005-11-18 10:06:37  No: 18789

はじめまして,私DB初心者と申します.
Delphi Ver7.0で、TQueryを用い、MSAccess2000のテーブルに
接続しようとしています。
SQLでPOSTし、テーブルに更新をかけるときに
「EDBEngineErrorクラスの例外'テーブルは書き込み禁止です'」となり、
レコードの追加や削除ができません。
 With Query1 do begin
     Close;
     SQL.Clear;
     SQL.ADD(SQLDelRec);
     Open;
     Edit;
     Post;
テーブルの参照はできるのですが、追加・変更・削除ができない状態です。
どのように記述すれば宜しいのでしょうか?よろしくご教授お願いします。


ADO  2005-11-18 10:13:30  No: 18790

TADOConnection
 +TADOQueryだと
ヘルプに使い方が載っています。


ヨーダ  2005-11-18 18:54:01  No: 18791

Query1.Edit;は使ったことないのですが、通常は更新、削除、追加などを実行す売る場合Query1.ExecSQLをしようするのがよいと思います。
先の例では、Open; Edit; Post;を、悪いことはいいませんQuery1.Prepare;  Query1.ExecSQL;に変更してください。


DB初心者  2005-11-22 23:05:31  No: 18792

ADO  さん、ヨーダ  さん、ありがとうございます。
     Query1.Open;
     Query1.Edit;
     Query1.Post;
は単一方向のSQL実行時のみ有効だったんですね。

登録時は  Query1.Append  →   Query1.Post
変更時は  Query1.Edit    →   Query1.Post
削除時は(Query1.Prepare)→  Query1.ExecSQL;

で実行できました!!ありがとうございました。


HOta  2005-11-22 23:10:33  No: 18793

QueryのRequestLiveはtrueになっていますか?
Select文が複テーブルの場合は、TUpdateSQLを使用します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加