Edited at

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