まとまりのないブログ

something which something is something

delphi

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と大体同じような使い方でいける。挙動は微妙に異なるような。
いちいちトランザクションを設定しないといけないのが面倒ではあるけれども。

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

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

-delphi

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

delphiで組み込みデータベースを使うときの候補

調べた範囲では3つ sqlite firebird Microsoft Access それぞれのコネクションに使うコンポーネント sqlite delphi用のフリーのsqlite wrapper h …

Delphi – イベントログへの出力

Delphiのイベントログへの出力について。変数のちょっとした確認などに。 str := ‘test’; OutPutDebugString(PChar(str));

no image

DelphiのDBgridのmultiselect

DBGrigのmultiselectプロパティをtrueに設定してみてもマウスドラッグでマルチセレクトされないから何か他の設定方法があるのかとおもいきや、操作方法が難しいだけだった。 – …

no image

sqlite3とfirebirdどちらをdelphiで使うか

また迷ってきた。TStringGridを使うならsqliteでも別に構わないということに気づいた。そもそもfirebirdを使うことにしたのはDBGridにselect文の結果データセットを上手くバイ …

Delphi – 実行中のディレクトリを取得

アプリケーションが実行中のディレクトリを取得。exeファイルのある場所。 val := ExtractFilePath(Application.ExeName);