Help us understand the problem. What is going on with this article?

Delphi と IBLite (InterBase)

はじめに

InterBase は組み込みから多層 DB アプリケーションにも対応するマルチデバイス向けのデータベースで、エディションにより用途が異なります。
image.png

エディション 用途 対応プラットフォーム 同時接続ユーザー数 ユーザーあたりのセッション数 最大 DB ファイルサイズ
IBLite 組み込み Windows, macOS, iOS, Android 1 1 100MB
ToGo Edition 組み込み / スタンドアロン Windows, macOS, iOS, Android 1 8 無制限
Desktop Edition スタンドアロン Windows 1 8 無制限
Developer Edition 開発用 Windows, macOS 1, Linux, Solaris 1 20 4 無制限
Server Edition 多層 DB アプリケーション Windows, macOS 1, Linux, Solaris 1 ~無制限 2 4 無制限

Delphi には 開発用の Developer Edition が付属しており、スタンドアロン及び多層 DB アプリケーション向けのアプリケーションを開発できます。無償で使えますが、この Developer Edition を配布する事はできません。

クライアントサーバーを含む多層 DB アプリケーション用であれば、Server Edition とクライアントライセンスを購入する必要があります。

スタンドアロン用の Desktop Edition もありますが Windows 専用であり、複数の PC から同時接続できません。ネットワークに繋がない PC でのスタンドアロン動作という今となってはニッチな用途向けです。

ToGo EditionIBLite は共に組み込み向けです。Firebird SQL で言う所の Embedded Server です。Delphi には ToGo Edition のテスト配置ライセンスIBLite の無制限配布ライセンスが付属しています。この両者の違いはライセンスのみであり、制限もライセンスファイルで行われています。スタンドアロン用途なら ToGo Edition でもいいと思います。

IBLite を iOS や Android 等のモバイル環境で使うのは OK だと思いますが、ちょっと残念な仕様がある 3 ため、Windows や macOS のようなデスクトップ環境の場合には (有償ですが) ToGo Edition や Desktop Edition を使いましょう...大丈夫だよね?ToGo や Desktop なら。

余談ですが Firebird SQL は InterBase 6 Open Edition からフォークした RDBMS です。使い方はほぼ同じなので、用途や状況に応じて使い分けるといいと思います。

See also:

IBLite (ToGo Edition)

この記事では IBLite を扱いますが ToGo Edition も使い方は一緒です。先述の通り、Delphi には IBLite の無制限配布ライセンスが付属しており、無償でしかもマルチプラットフォームで使えます。

See also:

IBLite (ToGo Edition) のインストール

Delphi で使う場合、GetIt ([ツール | GetIt パッケージマネージャ]) から Interbase ToGo Edition / IBLite 用の再配布ファイルを入手します。
image.png
Delphi インストール時に Developer Edition をインストールしなかった場合には、インストーラーの [変更] で追加インストールするか、別途 Developer Edition を DL してインストールしましょう。
image.png
ToGo Edition / IBLite アプリケーション設計時の機能は Developer Edition を通じて提供されます。ToGo Edition / IBLite が実際に使われるのは実行時です。ToGo Edition / IBLite 向けのアプリ開発であっても IDE から設計時の機能を使う場合には Developer Edition のインストールが必須となります。

開発には Developer Edition があると便利なのですが、Firebird SQL をお使いの場合、そのままだと競合してしまうので、InterBase Maneger でサービスとしてではなくスタンドアロンで手動起動するようにするといいでしょう。
image.png

また、Firebird SQL をお使いの場合には、システムフォルダ (C:\Windows\SYSWOW64) にある Interbase 由来の GDS32.DLL を削除し、Firebird 由来の GDS32.DLL をコピーしておきましょう。

以前は再配布ファイルを用意した後で、ライセンスファイル (reg_iblite.txt) を取得して $(IBREDISTDIR) 4 へ手動でコピーする必要があったのですが、現在では GetIt からインストールした ToGo Edition / IBLite の再配布ファイルと共にライセンスファイルが含まれるようになっています...つまり、現在はデフォルトで IBLite として動作するという事になります。

IBLite (ToGo Edition) アプリケーションの作成

IBLite (ToGo Edition) アプリケーションの作成については以下の記事を参考にしてください。FireMonkey からだけでなく、VCL からももちろん使えます。

IBLite (ToGo Edition) の配布

Windows の場合には手動で配布してもいいのですが、macOS / iOS / Android の場合にはアプリケーションパッケージに含める必要があります。パッケージに IBLite の再配布ファイルを含めるには、以下のいずれかの方法を採ります。

  • [プロジェクト | プロジェクトに追加...] でプロジェクトに拡張子 .gdb または .ib のファイル (Interbase のデータベースファイル) を追加する。
  • [プロジェクトマネージャ] に拡張子 .gdb または .ib のファイル (Interbase のデータベースファイル) をドラッグ&ドロップする。
  • [プロジェクト | 配置] で [機能ファイルの追加] ボタンを押す。image.png

それから [機能ファイル] ダイアログで "Interbase ToGo" にチェックを入れます。
image.png

こうするとプロジェクトのビルド完了後の配布 (デプロイ) 時に配布パッケージに IBLite の再配布ファイルが含まれるようになります。

Windows 向けの IBLite (ToGo Edition) の配布 (手動)

Windows 用に開発&デバッグする場合には、再配布用フォルダ 4 から手動でファイルをコピーしておくといいでしょう。

1.32bit アプリケーション用の手動配布

32bit Windows アプリケーション向けの場合には win32_togo フォルダからファイルを収集します。

win32_togo
\
│  (あなたの作った EXE)
│  (あなたの作った DB)
│  ibtogo.dll (32bit アプリケーションの場合)
│
└─InterBase
    │  ADMIN.IB
    │  interbase.msg
    │  license.txt
    │  oss_license_notice.txt
    │
    ├─intl
    │      gdsintl.dll
    │
    └─license
            reg_iblite.txt (IBLite の場合)

2.64bit アプリケーション用の手動配布

64bit Windows アプリケーション向けの場合には win64_togo フォルダからファイルを収集します。

win64_togo
\
│  (あなたの作った EXE)
│  (あなたの作った DB)
│  ibtogo64.dll (64bit アプリケーションの場合)
│
└─InterBase
    │  ADMIN.IB
    │  interbase.msg
    │  license.txt
    │  oss_license_notice.txt
    │
    ├─intl
    │      gdsintl.dll
    │
    └─license
            reg_iblite.txt (IBLite の場合)

reg_iblite.txt は再配布用フォルダ 4 直下にあるハズですが、なければ ToGo / IBLite の再配布パッケージを GetIt から再度インストールしてみてください。

Windows 向けの IBLite (ToGo Edition) の配布 (PAServer 経由)

開発がローカル PC 内で完結しているのなら、この方法は面倒なだけかもしれませんが、一応ご紹介しておきます。

1.PAServer のインストール

PAServer は Delphi のインストールフォルダ\PAServer にインストーラが格納されています。setup_paserver.exe を実行してインストールします。
デフォルトのインストール先だと UAC の影響を受けてしまいますので、必ず Program Files / Progran Files (x86) 以外の場所へインストールしてください。
image.png
インストール先の paserver.exe を実行します。Enter を押し、以下の画像のような状態にしてください。
image.png
初回起動時には Windows Defender に引っかかるかもしれませんが、その時には許可を行ってください。
image.png

2.接続プロファイルの作成

  1. [ツール | オプション] で 接続プロファイルマネージャ を開きます。 image.png
  2. [追加] ボタンを押して接続プロファイルを作成します。 image.png
  3. プロファイル名を "Win32 Loopback" にし、プラットフォームで 32 ビット Windows を選択します。 image.png
  4. IP アドレスに 127.0.0.1 を入力します。パスワードは不要です。
    image.png

  5. [接続テスト] ボタンを押して接続できれば OK です。
    image.png

  6. 同様に 64bit Windows 用の接続プロファイルも作っておきます。
    image.png

3.ターゲットプラットフォームに接続プロファイルを割り当てる

[プロジェクトマネージャ] のターゲットプラットフォームを右クリックし [プロパティ] をクリックします。
image.png
プロファイルで先程作った接続プロファイルを選択します。
image.png
プロファイルで先程作った接続プロファイルを選択します。
image.png
ターゲットプラットフォーム "32 ビット Windows" に接続プロファイル "Win32 Loopback" が割り当てられました。

4.配置

[プロジェクト | 配置] で [機能ファイルの追加] ボタンを押し、
image.png
[機能ファイル] ダイアログで "Interbase ToGo" にチェックを入れ、
image.png
[プロジェクト | ???の配置] か、[配置] タブで [配置] ボタンを押します。普通にデバッグ実行しようとしてもファイルは配置されます。
image.png
但し、ファイルはプロジェクトフォルダに配置されません。PAServer を使った場合、ファイルはスクラッチディレクトリに配置されます。スクラッチディレクトリはリモートデバッグ用のサンドボックスのようなものです。これは通常 PAServer インストールフォルダ\Scratch-dir に存在します。このため、PAServer は %ProgramFiles% 以下にインストールしてはいけません。

スクラッチディレクトリの場所は PAServer のコンソールで s [Enter] とすると知ることができます。
image.png
ね、手動配布の方が簡単でしょ? (^^;A

See also:

終わりに

便利ですがちょっと解りにくい IBLite についての記事でした。

繰り返しになりますが、アプリケーション側から見た ToGo Editon と IBLite に違いはありませんので、ドキュメントの類はライセンス部分を除いて互いに読み替える事が可能です。

See also:


  1. Interbase XE が最新版となる。 

  2. クライアントライセンスが別途必要。最近ちょっとお高い。 

  3. IBLite を使ったアプリケーションが複数ある場合、後で起動したアプリケーションからは IBLite が使えない。つまり IBLite 使用アプリは排他利用となる。 

  4. デフォルトで C:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBase2017 

ht_deko
とある熊本の障害復旧(トラブルシューター)
https://ht-deko.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away