IBQueryのサンプルコード

sql := ‘insert into table(id,name) values(1,’test’)’;
IBQuery1.SQL.SetText(PWideChar(sql));

IBDatabase1.Open;
try
IBTransaction1.StartTransaction;
IBQuery1.ExecSQL;
IBTransaction1.Commit;
except
IBTransaction1.RollBack;

IBDatabase1.Close;

IBSQLというコンポーネントもあるが、IBQUERYと大体同じような使い方でいける。挙動は微妙に異なるような。
いちいちトランザクションを設定しないといけないのが面倒ではあるけれども。

データベースを開いたり閉じたりというのは、普通、どういう感じで実装しているのはわからない。トランザクション毎に開いて閉じて、という風にやるのは行儀が良いといえなくもないが、冗長な気もする。アプリケーション実行時に開いて、終了時に閉じるというのは雑すぎるような気もするし。(強制終了した場合は閉じないままとなってしまう可能性があり、そうなるとどういう問題が発生するのかも検証しないといけないし。多分、それはそれほど大問題にはならないとは思うが。それよりもコミットとロールバックしないままというのが問題だと思う)

・・・後者を採用してみるか。

コメントを残す

メールアドレスが公開されることはありません。