InterBaseのデータベースエリアス機能

By: Chikako Yonezawa

Abstract: InterBase7.5から追加されたデータベースエリアスについて Delphiからの接続の設定も含め説明します。

    概要

InterBase7.5より、データベースエリアスの機能が追加されました。この機能はサーバーのコンテキスト内でデータベースファイルに別名をつけるというものです。この機能を利用すると、データベースファイルへのフルパスを指定することなく、クライアントから接続が可能となります。

    エリアスの設定方法

エリアスの設定は、gsecコマンドを使用して行います。

※ここでは InterBase2007を使用し、interbaseのインストールディレクトリを c:\interbase として説明します。またホスト名は localhostを使用します。

  1. サーバーがインストールされているマシン上で、セキュリティデータベースに接続します。
# gsec –user sysdba –password masterkey –database c:\interbase\admin.ib
  1. alias_add コマンドでデータベースエリアスを設定します。ここでは empというデータベースエリアスで、付属しているサンプルデータベース employee.gdbを登録します。
gsec> alias_add emp –alias_dbpath c:\interbase\examples\database\employee.gdb
  1. 登録されているデータベースエリアスの一覧を表示するには alias_dis コマンドを使用します。
gsec> alias_dis
Alias Name: emp
Database Path: c:\interbase\examples\database\employee.gdb
  1. また、データベースエリアスを削除する場合は、alias_del コマンドを使用します。
gsec> alias_del emp

    コマンドラインでの接続

従来、データベースエリアスを使用しない場合は、以下のようにフルパスを指定する必要がありました。(SYSDBAでの接続例)

# isql –user sysdba –password masterkey
Use CONNECT or CREATE DATABASE to specify a database 
SQL> connect c:\interbase\examples\database\employee.gdb;
Database: c:\interbase\examples\database\employee.gdb, User: sysdba

データベースエリアスを示すには、エリアス名の前に :(コロン)をつけます。ISQLを使用して、コマンドラインから設定したデータベースエリアスを使用して接続するには、以下のように指定します。(SYSDBAでの接続例)

# isql –user sysdba –password masterkey
Use CONNECT or CREATE DATABASE to specify a database 
SQL> connect :emp;
Database: :emp, User: sysdba

    dbExpressでの接続設定

dbExpressでの接続設定ですが、コマンドラインでの接続の時と同様、データベースエリアスを示す、:(コロン)をつけて指定します。

Delphi2007での手順を例にとります。

  1. プロジェクトマネージャーのデータエクスプロラータブを選択します。
  2. INTERBASEを選択し、選択した状態でマウスの右ボタンを押し、ポップアップメニューを表示します。
  3. 表示されたポップアップメニューから「新規接続の追加(A)」を選択します。
  4. Add New Connection のダイアログが表示されますので、Connection Name に、たとえば ib_alias のような任意の名前を入力し、[OK]ボタンを押します。
  5. データエクスプローラの INTERBASEのツリーを展開します。
  6. 今、登録した接続(たとえば ib_alias) を選択し、マウスの右ボタンを押し、ポップアップメニューを表示します。
  7. 表示されたポップアップメニューから「接続の変更(M)」を選択します。
  8. 表示された接続エディタ内の Databaseプロパティの部分に、登録したエリアス(ここでは emp)をコロンをつけて指定します。
  9. [テスト]ボタンを押し、接続できるかを確認します。

Hide image
ib_alias01

    IBExpressでの接続設定

IBExpressでの接続設定ですが、コマンドラインでの接続の時と同様、データベースエリアスを示す、:(コロン)をつけて指定します。

Delphi2007での手順を例にとります。

  1. [ファイル|新規作成|VCL フォームアプリケーション – Delphi for Win32] にて新規アプリケーションを作成します。
  2. デザインタブを開き、ツールパレットのInterBase カテゴリ内にある TIBDataBaseをダブルクリックし、フォーム上に貼り付けます。
  3. フォーム上の TIBDataBase を選択し、オブジェクトインスペクタ上のDatabase プロパティに、登録したデータベースエリアス(ここでは emp)をコロンをつけて指定します。
  4. Active プロパティを True にし、データベースに接続できるか確認します。

Hide image
ib_alias02

注意:

デザイナ上で、TIBDataBaseをダブルクリックすると「データベースコンポーネント設定」のダイアログが表示され、ここでも上記同様に :emp と設定しますが、一度、このダイアログを閉じて、再度表示した際に、:(コロン)が取れた状態で表示されることがありますが、再度:(コロン)を設定しなおす必要はありません。

Hide image
ib_alias03

    まとめ

データベースエリアスの機能を使用すると、データベースファイルの正確な位置がわからなくても、クライアントアプリケーションがエリアスによってデータベースを参照できるため、接続をする際のフルパスの記入の必要がなくなるだけでなく、データベースの場所や、名前の変更があった場合でも、gsecを使用して、データベースエリアスを変更するだけで、アプリケーション側の変更を行う必要がなくなります。

Server Response from: ETNASC04