情報カタログ・マネージャー プログラミングの手引きおよび解説書

FLGAppendType

既存のオブジェクト・タイプに任意選択の特性を追加するために使用します。

Comments オブジェクト・タイプは拡張できませんが、 Comments オブジェクト・タイプ以外のオブジェクト・タイプ はどれでも追加することができます。

許可

管理者

構文



APIRET  APIENTRY    FLGAppendType( PFLGHEADERAREA   pObjTypeStruct,
                                   PFLGEXTCODE      pExtCode );

パラメーター

pObjTypeStruct (PFLGHEADERAREA) − 入力
このオブジェクト・タイプに追加する 1 つまたは複数の特性に関する仕様を 含む入力構造を指します。

pExtCode (PFLGEXTCODE) − 出力
理由コードに関連する拡張コードを指します。 戻された理由コードに関連した意味のある拡張コードがあるかどうかについて は、付録 D, 情報カタログ・マネージャーの理由コードを参照してください。

理由コード (APIRET)
この API 呼び出しの実行結果を表します。

戻された理由コードの説明については、付録 D, 情報カタログ・マネージャーの理由コードを参照してくだ さい。

入力構造

FLGAppendType を使用するには、図 42 に示す入力構造を定義し なければなりません。 この構造はヘッダー域と定義域だけからなります。

図 42. FLGAppendType 入力構造


Figure FLAA2001 not displayed.

バイト・オフセットの意味については、情報カタログ・マネージャー API 入力構造を参照してください。

使用方法

制約事項

Comments オブジェクト・タイプは拡張できませんが、 Comments オブジェクト・タイプ以外のオブジェクト・タイプ はどれでも追加することができます。

オブジェクト・タイプ内に既に存在する新規の特性を追加すると、"新規"特性は、 複写として扱われ、FLGAppendType は警告 (FLG_WRN_PROPDUP) をもって正常に完了します。 以下のすべてが既存の特性と一致する場合、特性はコピーです。

データ・タイプ

データ長

特性省略名

値フラグ

UUI 番号

入力要件

ヘッダー域
  • バイト 33 から 38 までに指定するオブジェクト・タイプ識別子は、 カタログに存在しているものでなければなりません。
  • バイト 32 に指定する区分は、バイト 33 から 38 までに 指定した既存のオブジェクト・タイプと一致していなければなりません。
定義域
  • 入力構造には、このオブジェクト・タイプに関してすでに定義されている 特性を含めることはできず、追加される新規の特性だけを含めることができます。
  • 追加される特性は、任意選択のものでなければなりません。 バイト 126 の値フラグ・フィールドに文字 O を指定してください。
  • 追加される特性は、汎用固有識別コード (UUI) のパート として定義することはできません 。 したがって、バイト 127 のフィールドはブランクとして定義してください。
  • 新規の特性名は、そのオブジェクト・タイプの中では固有のものでなければなり ません。
  • 新規の特性省略名は、そのオブジェクト・タイプの中では固有のものでなければ なりません。 特性省略名は以下の規則に従っている必要があります。
    • 1 バイト文字セット (SBCS) の文字だけしか使用することができません。
    • 先頭文字は、A から Z または a から z まで、@ または #、 あるいは $ でなければなりません。
    • 先頭以外の文字には、A から Z または a から z まで、0 から 9 まで、 @ または #、$ または _ (下線) を使用することができます。
    • 先行または組み込みブランクを使用することはできません。
    • 現行データベースに関する SQL 予約語を名前として使用することはできませ ん。 予約語のリストについては、使用するデータベースに関する資料を参照してく ださい。
  • 1 つのオブジェクト・タイプに関するすべての特性の合計長が 環境限界を超えてはなりません。 この制限は、それぞれのデータベース・システムの行 (オーバーヘッド を含む) の最大制限値によって異なります。 詳細は、それぞれのデータベース・システムの DB2 UDB SQL 解説書 を参照してください。
一般的な規則
  • 1 つのオブジェクト・タイプの特性の最大長は、 255 (FLG_MAX_PROPERTIES) です。
  • 1 つのオブジェクト・タイプに関する特性のうち で LONG VARCHAR データ・タイプにすることができるものの最大数は、 14 (FLG_MAX_NUM_LONG_VARCHARS) です。
情報カタログ更新の制御

プログラムを可能な限り、情報カタログと同期化させるために、 FLGAppendType が正常に完了したあとで、呼び出しを FLGCommit (FLGCommit参照) に 組み込む必要があります。 FLGAppendType が正常に完了しない場合は、呼び出しを FLGRollback (FLGRollback参照) に 組み込む必要があります。

図 43 は、FLGAppendType 呼び出しを出すために必要な C 言語コード を示しています。 このコードは、オブジェクト・タイプ識別子 000044 のオブジェクト・タイプ に Density という名前特性を追加するものです。

図 43. C 言語による FLGAppendType の呼び出しのサンプル

 APIRET           rc;              // Declare reason code
 PFLGHEADERAREA   pObjTypeStruct;  // Pointer to the input structure
 FLGEXTCODE       ExtCode = 0;          // Declare extended code
   .
   .  /* Appending pObjTypeStruct object Type */
   .          /*  by providing object properties     */
   .
 rc = FLGAppendType (pObjTypeStruct,
                    &ExtCode);             // Pass pointer to extended code
 

図 44 は、この FLGAppendType 呼び出しの ための入力構造を示しています。 pObjTypeStruct パラメーターはこの入力構造を指しています。

図 44. FLGAppendType のための入力構造のサンプル


Figure FLAA2002 not displayed.

特別なエラー処理

FLGAppendType でデータベース・エラーが発生すると、情報カタログ・マネージャーは、 プログラム内で最後に行われたコミット点にデータベースをロールバックします。

このロールバックが正常に行われた場合、FLGAppendType は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_COMPLETE を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。

考慮事項: このロールバックが失敗した場合には、FLGAppendType は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_FAIL を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。 この場合、データベースの保全性に関する重大な問題が発生している可能性が あるため、プログラムで FLGTerm を呼び出して情報カタログ・マネージャーを終了させる必要があります。

データベースの状態によっては、バックアップ用データベース・ファイルを 使用してデータベースを回復させなければならないことがあります。 情報カタログ・データベースの回復に関する詳細については、 情報カタログ・マネージャー 管理の手引き を参照してください。

FLGAppendType エラーとは無関係なコミットされていない変更内容が情報カタログ・マネージャーによっ て除去されないようにするために、プログラム内のこの呼び出しの直前 に FLGCommit 呼び出しを組み込んでください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]