6.2.4 クラスの定義の変更

クラスの定義の変更では,プロパティの追加,プロパティの定義の変更,またはプロパティの削除のどれかがあります。

<この項の構成>
(1) プロパティの追加
(2) プロパティ定義の変更
(3) プロパティの削除

(1) プロパティの追加

プロパティを追加するには,追加するプロパティの定義を記述した定義情報ファイルを作成します。そして,作成した定義情報ファイルをメタ情報の追加コマンド(dbjaddmeta)で指定して,プロパティの定義の追加,およびプロパティに対応する列を追加するデータベース定義文の生成を実行します。

プロパティを追加する手順を次に示します。

  1. 定義情報ファイルを作成します。
    追加するプロパティの定義を記述する定義情報ファイルを作成します。定義情報ファイルの作成については,「4.9 定義情報ファイル」を参照してください。
  2. インデクス情報ファイルを作成します。
    追加するプロパティに対応する列の値は,手順5.で示すようにNULL値になります。これによって,追加するプロパティにインデクスを定義する定義系SQL「CREATE INDEX」で「除外値指定」はできません。インデクス情報ファイルの作成については,「6.2.2 クラスの追加」のインデクス情報ファイルの作成に関する記述を参照してください。
  3. メタ情報のバックアップを取得します。
    6.2.2 クラスの追加」のメタ情報のバックアップの取得に関する記述を参照してください。
  4. データベースのバックアップを取得します。
    表に列を追加するので,「3.8.2(3) メタ情報用のテーブルを定義します」で定義したメタ情報用の表を作成したRDエリアのバックアップを取得します。バックアップの取得方法については,マニュアル「HiRDB システム運用ガイド」のバックアップの取得方法に関する説明で,定義系SQL「ALTER TABLE」の記述を参照してください。
  5. メタ情報の追加コマンド(dbjaddmeta)を実行します。
    手順1.,および手順2.で作成した定義情報ファイル,およびインデクス情報ファイルを指定して,メタ情報の追加コマンド(dbjaddmeta)を実行して,プロパティを追加します。
    メタ情報の追加コマンド(dbjaddmeta)の-oオプションで,列を追加する定義系SQL「ALTER TABLE」を格納するデータベース定義文格納ファイルを指定します。定義系SQL「ALTER TABLE」の「ADD」句で追加する列の値にはNULL値が指定されます。
    メタ情報の追加コマンド(dbjaddmeta)で追加するプロパティ定義に指定する初期値は,UAPでオブジェクトを新規に作成する場合の初期値であり,追加するプロパティには値を設定しません。
  6. データベース定義ユティリティを実行します。
    手順5.で作成したデータベース定義文を入力ファイルとして指定し,HiRDBのデータベース定義ユティリティ(pddef)を実行して追加するプロパティに対応する列を追加します。詳細については,「6.2.2 クラスの追加」のデータベース定義ユティリティの実行に関する記述を参照してください。

(2) プロパティ定義の変更

プロパティの定義を変更する場合,メタ情報の変更コマンド(dbjchgmeta)で,プロパティの定義の変更を実行します。

プロパティの定義を変更する手順を次に示します。

  1. メタ情報のバックアップを取得します。
    6.2.2 クラスの追加」のメタ情報のバックアップの取得に関する記述を参照してください。
  2. データベースのバックアップを取得します。
    表の定義を変更するので,全RDエリアのバックアップを取得します。バックアップの取得方法については,マニュアル「HiRDB システム運用ガイド」のバックアップの取得方法に関する説明で,定義系SQL「ALTER TABLE」の記述を参照してください。
  3. メタ情報の変更コマンド(dbjchgmeta)を実行します。
    メタ情報の変更コマンド(dbjchgmeta)でプロパティの定義を変更します。メタ情報の変更コマンド(dbjchgmeta)の-oオプションで,変更するプロパティに対応する列を変更する定義系SQL「ALTER TABLE」を格納する,データベース定義文格納ファイルを指定します。
  4. データベース定義ユティリティを実行します。
    手順3.で作成したデータベース定義文を入力ファイルとして指定し,HiRDBのデータベース定義ユティリティ(pddef)を実行して変更するプロパティに対応する列を変更します。詳細については,「6.2.2 クラスの追加」のデータベース定義ユティリティの実行に関する記述を参照してください。

(3) プロパティの削除

プロパティを削除する場合,メタ情報の削除コマンド(dbjdelmeta)で,プロパティの定義の削除を実行します。ただし,メタ情報の削除コマンド(dbjdelmeta)では,データベース定義は変更されないため,登録済みのデータは削除されません。また,該当プロパティを持つクラスにデータを追加した場合は,該当プロパティにはNULL値が設定されます。

プロパティの定義を削除する手順を次に示します。

  1. メタ情報のバックアップを取得します。
    6.2.2 クラスの追加」のメタ情報のバックアップの取得に関する記述を参照してください。
  2. メタ情報の削除コマンド(dbjdelmeta)を実行します。
    メタ情報の削除コマンド(dbjdelmeta)でプロパティの定義を削除します。メタ情報の削除コマンド(dbjdelmeta)の-pオプション,および-qオプションを指定して実行します。