InterBase Express の概要

提供:RAD Studio (日本語)
移動: 案内, 検索

InterBase Express(IBX)は,InterBase データベースのデータにアクセスするためのデータアクセスコンポーネントのセットです。InterBase 管理コンポーネントを使用するには InterBase 7.5 が必要です。InterBase 管理コンポーネントについては,InterBase データアクセスコンポーネントの後に説明されています。

IBX コンポーネント

コンポーネントパレットの[InterBase]タブには,以下のコンポーネントがあります。



IBX

IBTable.TIBTable

IBX

IBQuery.TIBQuery

IBX

IBStoredProc.TIBStoredProc

IBX

IBDatabase.TIBDatabase

IBX

IBDatabase.TIBTransaction

IBX

IBUpdateSQL.TIBUpdateSQL

IBX

IBCustomDataSet.TIBDataSet

IBX

IBSQL.TIBSQL

IBX

IBDatabaseInfo.TIBDatabaseInfo

IBX

IBSQLMonitor.TIBSQLMonitor

IBX

IBEvents.TIBEvents

IBX

IBExtract.TIBExtract

IBX

IBCustomDataSet.TIBCustomDataSet



名前が BDE コンポーネントに似ている IBX コンポーネントでも,機能などは少し異なります。以下のセクションでは,BDE に対応しているコンポーネントごとにこうした相異について説明します。

BDE から IBX へのアプリケーションの移行は簡単ではありません。通常は,BDE コンポーネントを対応する IBX コンポーネントに置き換えて,アプリケーションを再コンパイルしなければなりません。しかし,それで実現されるスピードに加えて,強力な InterBase 機能を利用できることを考えれば,移行する価値は十分にあります。

IBDatabase

IBDatabase.TIBDatabase コンポーネントを使用すると,1 つ以上のトランザクションを並行して実行するデータベース接続を確立できます。BDE と違って,IBX には別のトランザクションコンポーネントがあるので,それぞれのトランザクションやデータベース接続を別々に扱うことができます。

データベース接続を確立するには,以下の手順にしたがいます。

  1. フォームまたはデータモジュールに IBDatabase コンポーネントをドロップします。
  2. DatabaseName プロパティの値を指定します。ローカルな接続の場合は,データベースファイルのドライブ,パス,およびファイル名を入力します。Connected プロパティを true に設定します。
  3. 有効なユーザー名とパスワードを入力し,[OK]をクリックしてデータベース接続を確立します。

警告:  参考:ログイン後に LoginPrompt プロパティを false に設定すると,IBDatabase コンポーネントの Params プロパティにユーザー名とパスワードを指定できます。たとえば,システム管理者としてログインし,LoginPrompt プロパティを false に設定してから Params プロパティを編集すると,次のようなコードが表示されます。


      user_name=sysdba
      password=masterkey

IBTransaction

Borland Database Engine と違って,IBX では IBDatabase.TIBTransaction という別のコンポーネントを使ってトランザクションを制御します。この強力な機能により,それぞれのトランザクションやデータベース接続を別々に扱うことができるので,InterBase の 2 層コミット機能(複数の接続にまたがるトランザクション)を利用したり,同一の接続で複数のトランザクションを並行して実行することができます。

IBTransaction コンポーネントを使用すると,1 つ以上のデータベース接続を利用するトランザクションコンテキストを扱うことができます。ただし,ほとんどの場合,シンプルな単一データベース/単一トランザクションモデルで十分に機能します。

トランザクションを実行するには,以下の手順にしたがいます。

  1. 上記の手順で IBDatabase 接続を確立します。
  2. フォームまたはデータモジュールに IBTransaction コンポーネントをドロップします。
  3. DefaultDatabase プロパティに IBDatabase コンポーネントの名前を指定します。
  4. Active プロパティを true に設定して,トランザクションを開始します。

IBX データセットコンポーネント

IBX では,さまざまなデータセットコンポーネントを選択でき,それぞれに特徴と適したタスクがあります。

IBTable

IBTable.TIBTable コンポーネントを使用すると,SQL 文を入力しなくても,テーブルまたはビューにライブデータセットを設定できます。

IBTable コンポーネントは,以下の手順で簡単に設定できます。

  1. フォームまたはデータモジュールに IBTable コンポーネントを追加します。
  2. 関連付けられたデータベースコンポーネントとトランザクションコンポーネントを指定します。
  3. TableName ドロップダウンリストからテーブル間の関係の名前を指定します。
  4. Active プロパティを true に設定します。

IBQuery

IBQuery.TIBQuery コンポーネントを使用すると,InterBase の DSQL 文を実行したり,結果セットを特定の列と行に制限することができます。また,集計関数を利用したり,複数のテーブルを結合することもできます。

IBQuery コンポーネントは読み出し専用のデータセットを提供し,InterBase クライアント/サーバー環境に適しています。IBQuery コンポーネントを設定するには,以下の手順にしたがいます。

  1. 上記の手順で IBDatabase 接続を確立します。
  2. 上の手順で IBTransaction 接続を確立します。
  3. フォームまたはデータモジュールに IBQuery コンポーネントを追加します。
  4. 関連付けられたデータベースコンポーネントとトランザクションコンポーネントを指定します。
  5. 文字列リストエディタで IBQuery の SQL プロパティに有効な SQL 文を入力します。
  6. Active プロパティを true に設定します。

IBDataSet

IBCustomDataSet.TIBDataSet コンポーネントを使用すると,InterBase の DSQL 文を実行したり,結果セットを特定の列と行に制限することができます。また,集計関数を利用したり,複数のテーブルを結合することもできます。IBDataSet コンポーネントは,IBUpdateSQL コンポーネントを使用せずにライブデータセットをサポートすることを除いて,IBQuery コンポーネントと同じです。

以下に,employee.gdb の COUNTRY テーブルにライブデータセットを提供するという例を示します。

  1. 上記の手順で IBDatabase 接続を確立します。
  2. 関連付けられたデータベースコンポーネントとトランザクションコンポーネントを指定します。
  3. フォームまたはデータモジュールに IBDataSet コンポーネントを追加します。
  4. 以下のプロパティに対して SQL 文を入力します。



SelectSQL

SELECT Country, Currency FROM Country

RefreshSQL

SELECT Country, Currency FROM Country WHERE Country = :Country

ModifySQL

UPDATE Country SET Country = :Country, Currency = :Currency WHERE Country = :Old_Country

DeleteSQL

DELETE FROM Country WHERE Country = :Old_Country

InsertSQL

INSERT INTO Country (Country, Currency) VALUES (:Country, :Currency)



  1. Active プロパティを true に設定します。
メモ:  関数に渡されるパラメータと項目は,ダイアレクト 3 では大文字と小文字が区別されます。次に例を示します。


FieldByName(EmpNo)

項目が「EMPNO」の場合,ダイアレクト 3 ではこの関数は何も返しません。

IBStoredProc

InterBase 実行形式手続き(最大で 1 行の情報を返す手続き)として IBStoredProc.TIBStoredProc を使用します。複数行のデータを返すストアドプロシージャ(「Select」プロシージャ)の場合は,IBQuery または IBDataSet コンポーネントを使用します。

IBSQL

IBSQL.TIBSQL コンポーネントは,速度と軽さが求められるデータ操作に使用します。IBSQL コンポーネントは,データの定義や別のデータベースへのデータのポンピングといった操作に適しています。

以下の例では,IBSQL コンポーネントを使ってジェネレータから次の値を返しています。

  1. 上記の手順で IBDatabase 接続を確立します。
  2. フォームまたはデータモジュールに IBSQL コンポーネントを配置して,Database プロパティにデータベースの名前を指定します。
  3. SQL プロパティの文字列リストエディタに,次のような SQL 文を追加します。


      SELECT GEN_ID(MyGenerator, 1) FROM RDB$DATABASE

IBUpdateSQL

IBUpdateSQL.TIBUpdateSQL コンポーネントを使用すると,読み出し専用のデータセットを更新できます。また,以下のように IBUpdateSQL コンポーネントを使用すると,IBQuery の出力を更新できます。

  1. 上の手順で IBQuery コンポーネントを設定します。
  2. フォームまたはデータモジュールに IBUpdateSQL コンポーネントを追加します。
  3. DeleteSQL,InsertSQL,ModifySQL,RefreshSQL の各プロパティに SQL 文を入力します。
  4. IBQuery コンポーネントの UpdateObject プロパティを IBUpdateSQL コンポーネントの名前に指定します。
  5. IBQuery コンポーネントの Active プロパティを true に設定します。

IBSQLMonitor

IBSQLMonitor.TIBSQLMonitor コンポーネントを使用すると,アプリケーションと InterBase サーバー間の通信を監視するための診断機能付きツールを開発できます。IBDatabase コンポーネントの TraceFlags プロパティが有効になっている場合には,アクティブな TIBSQLMonitor コンポーネントは接続の動作を記録して,その出力をファイルやコントロールに送信します。

TIBSQLMonitor コンポーネントと Memo コントロールがある別のアプリケーションを作成する場合が好例です。この二次アプリケーションを実行し,一次アプリケーションでは IBDatabase コンポーネントの TraceFlags をアクティブにします。一次アプリケーションと対話すると,二次アプリケーションのメモコントロールにデータが記録されることがわかります。

IBDatabaseInfo

IBDatabaseInfo.TIBDatabaseInfo コンポーネントを使用すると,スイープ間隔,ODS のバージョン,現在このデータベースにアタッチしているユーザー名など,特定のデータベースに関する情報を取得できます。

たとえば,現在データベースに接続しているユーザーを表示するように IBDatabaseInfo コンポーネントを設定するには,以下の手順にしたがいます。

  1. 上記の手順で IBDatabase 接続を確立します。
  2. フォームまたはデータモジュールに IBDatabaseInfo コンポーネントを配置して,Database プロパティにデータベースの名前を指定します。
  3. フォームに Memo コンポーネントを配置します。
  4. フォームに Timer コンポーネントを配置して,時間間隔を設定します。
  5. Timer の OnTimer イベントフィールドをダブルクリックして,次のコードを入力します。


   Memo1.Text := IBDatabaseInfo.UserNames.Text;   //  Delphi の例
   Memo1->Text = IBDatabaseInfo->UserNames->Text; //  C++ の例

IBEvents

IBEvents.IBEvents コンポーネントを使用すると,InterBase サーバーによってホストされるイベントを登録したり,イベントを非同期に処理することができます。

IBEvents コンポーネントを設定するには,以下の手順にしたがいます。

  1. 上記の手順で IBDatabase 接続を確立します。
  2. フォームまたはデータモジュールに IBEvents コンポーネントを配置して,Database プロパティにデータベースの名前を指定します。
  3. Events プロパティの文字列リストエディタに,次のようなイベントを入力します。


      IBEvents.Events.Add('EVENT_NAME');   //  Delphi の例
      IBEvents->Events->Add("EVENT_NAME"); //  C++ の例
  1. 4. Registered プロパティを true に設定します。

InterBase 管理コンポーネント

InterBase 7.5 がインストールされている場合は,InterBase 管理コンポーネントを使用できます。これらのコンポーネントにより,強力な InterBase サービスの API 呼び出しを使用できます。

InterBase 管理コンポーネントは,IDE の[InterBase Admin]タブにあります。



IBX

IBServices.TIBConfigService

IBX

IBServices.TIBBackupService

IBX

IBServices.TIBRestoreService

IBX

IBServices.TIBValidationService

IBX

IBServices.TIBStatisticalService

IBX

IBServices.TIBLogService

IBX

IBServices.TIBSecurityService

IBX

IBServices.TIBLicensingService

IBX

IBServices.TIBServerProperties

IBX

IBInstall.TIBInstall

IBX

IBInstall.TIBUnInstall



メモ:これらの InterBase 管理コンポーネントを使用するには,InterBase 7.5 をインストールする必要があります。

IBConfigService

IBServices.TIBConfigService オブジェクトを使用すると,ページバッファ,非同期モード,予約領域,スイープ間隔などのデータベースパラメータを設定できます。

IBBackupService

IBServices.TIBBackupService オブジェクトを使用すると,データベースをバックアップできます。IBBackupService では,ブロッキング係数,バックアップファイル名,データベースバックアップオプションなどのパラメータを設定できます。

IBRestoreService

IBServices.TIBRestoreService オブジェクトを使用すると,データベースを復元できます。IBRestoreService では,ページバッファ,ページサイズ,データベース復元オプションなどのパラメータを指定できます。

IBValidationService

IBServices.TIBValidationService オブジェクトを使用すると,データベースを検証したり,データベーストランザクションを調整することができます。IBValidationService サービスでは,トランザクションのデフォルトアクションの設定,limbo トランザクション情報の取得,その他のデータベース検査オプションの設定ができます。

IBStatisticalService

IBServices.TIBStatisticalService オブジェクトを使用すると,データページ,データベースログ,ヘッダーページ,インデックスページ,システムリレーションなどのデータベースの統計情報を表示できます。

IBLogService

IBServices.TIBLogService オブジェクトを使用すると,ログファイルを作成できます。

IBSecurityService

IBServices.TIBSecurityService オブジェクトを使用すると,InterBase サーバーへのユーザーアクセスを管理できます。IBSecurityService では,ユーザーアカウントの作成,削除,変更,すべてのユーザーの表示,SQL ロールを使ったワークグループの設定を行うことができます。

IBLicensingService

IBServices.TIBLicensingService コンポーネントを使用すると,InterBase ソフトウェアライセンスを追加または削除できます。

IBServerProperties

IBServices.TIBServerProperties コンポーネントを使用すると,環境設定パラメータ,バージョン,ライセンス情報など,データベースサーバーの情報を取得できます。

IBInstall

IBInstall.TIBInstall コンポーネントを使用すると,インストール元とインストール先のディレクトリやインストールするコンポーネントの指定など,InterBase のインストールコンポーネントの設定を行うことができます。

IBUnInstall

IBInstall.TIBUnInstall を使用すると,アンインストールコンポーネントを設定できます。

他言語版