オブジェクト・タイプに関する登録情報を情報カタログ内に作成するために使用します。
この API 呼び出しはオブジェクト・タイプ自体を作成するためのものではなく、 オブジェクト・タイプの作成が行えるようにオブジェクト・タイプを登録するためのものです。 FLGCreateReg が情報カタログに保管する登録情報には、オブジェクト・タイプを記述する登録値が含 まれています。
Program および Attachment 区分を除き、どの区分にもタイプを登録するこ とができます。これらの区分はそれぞれ、情報カタログ・マネージャーが情報カタログ内に自動的 に作成する Programs および Comments タイプしか含むことができないからです。
許可
管理者
構文
APIRET APIENTRY FLGCreateReg( PFLGHEADERAREA pObjRegStruct,
PSZ pszIconFileID,
PSZ pszObjTypeID,
PFLGEXTCODE pExtCode );
パラメーター
ここで戻された ObjTypeID は、オブジェクト・タイプを識別する ために別の API 呼び出しによって使用されます。 オブジェクト・タイプが正常に登録されなかった場合、このパラメーター は NULL にセットされます。
戻された理由コードの説明については、付録 D, 情報カタログ・マネージャーの理由コードを参照してくだ さい。
入力構造
FLGCreateReg を使用するには、図 50 に示す入力構造を定義し なければなりません。 この構造はヘッダー域、定義域、およびオブジェクト域からなります。
入力構造では、ここで示された順番どおりに 6 つの特性を定義域に指定する 必要があります。
英語版以外の情報カタログ・マネージャーを使用している場合には、これらの必須特性の名前は翻訳 されており、また FLGInit の出力構造に戻されます。
特性省略名 | 特性名1 | 説明 | オブジェクト域での値の指定 | ||
---|---|---|---|---|---|
NAME | オブジェクト・タイプの外部名 | オブジェクト・タイプの名前を 80 バイトで指定。あとで修正可能。 | 必須。 | ||
PTNAME | 物理タイプ名 | 情報カタログにおけるオブジェクト・タイプを含んでいる実際の表の 名前を 30 文字で指定。 | 任意選択。デフォルトは DPNAME の値。 | ||
DPNAME | DP 名 | オブジェクト・タイプを表す 8 文字の省略名。 | この値は FLGCreateReg を使用して指定する必要がある。
必須。 | ||
CREATOR | 作成者 | オブジェクト・タイプを作成した管理者のユーザー ID を 8 文字で指定。 | 不可。この値は、オブジェクト・タイプに関して FLGCreateType が出されたときに 情報カタログ・マネージャーによって設定される。 | ||
UPDATEBY | 最終変更者 | オブジェクト・タイプを最後に修正した管理者のユーザー ID を 8 文字で指定。 | 不可。この値は、オブジェクト・タイプに関して FLGAppendType が出されたときに 情報カタログ・マネージャーによって指定される。 | ||
UPDATIME | 最終変更日付および時刻 | オブジェクト・タイプが最後に修正された日付と時刻のタイム・スタンプ を 26 文字で指定。 | 不可。この値は、オブジェクト・タイプに関して FLGCreateType また は FLGAppendType が出されたときに情報カタログ・マネージャーによって指定される。 | ||
|
バイト・オフセットの意味の一般的な説明については、 情報カタログ・マネージャー API 入力構造を参照してください。
使用方法
制約事項
入力要件
ヘッダー域
図 50 のヘッダー・レコードに示されたすべての情報を 指定する必要があります。
定義域
オブジェクト域
出力情報
システム生成のオブジェクト・タイプ識別子は、 出力パラメーター pszObjTypeID に入って戻されます。 情報カタログ・マネージャーがこの番号を戻した場合には、後続の FLGDeleteReg または FLGGetReg などの 呼び出しでこの番号を使用して、オブジェクト・タイプ登録を個別に識別するこ とができます。
情報カタログ更新の制御
FLGCreateReg が正常に完了しない場合は、呼び出し を FLGRollback (FLGRollback参照) に組み込む必要があります。 FLGCreateReg が正常に完了したあとで、FLGCommit を呼び出さず に、FLGCreateType への呼び出しが完了するまで待ってください。
図 51 は、FLGCreateReg 呼び出しを出すために必要な C 言語コード を示しています。 このサンプル・コードは、Elemental 区分に属する MYIMAGE という 新規のオブジェクト・タイプに関する登録情報を作成します。
図 51. C 言語による FLGCreateReg の呼び出しのサンプル
APIRET rc; // Declare reason code
PFLGHEADERAREA pObjRegStruct; // Pointer to the input structure
UCHAR pszIconFileID[FLG_ICON_FILE_ID_MAXLEN+1]; // Path/File name of ICON
UCHAR pszObjTypeID[FLG_OBJTYPID_LEN+1]; // Returned system-generated ID
FLGEXTCODE ExtCode = 0; // Declare extended code
.
. /* creating pObjRegStruct object Type Registration by providing values */
.
strcpy (pszIconFileID,"Y:\\FLGICON2.ICO");
rc = FLGCreateReg (pObjRegStruct, // input structure
pszIconFileID, // Path/File name of file containing the ICON
pszObjTypeID, // Returned id of registered object type
&ExtCode); // Pass extended code pointer
図 52 は、この FLGCreateReg 呼び出しのための入力構造を示して います。 pObjRegStruct ポインターは、新規のオブジェクト・タイプの登録に必要な特性 および値に関する情報を指します。
図 52. FLGCreateReg のための入力構造のサンプル
特別なエラー処理
FLGCreateReg でデータベース・エラーが発生すると、情報カタログ・マネージャーは、 プログラム内で最後に行われたコミット点にデータベースをロールバックします。
このロールバックが正常に行われた場合、FLGCreateReg は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_COMPLETE を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。
考慮事項: このロールバックが失敗した場合には、FLGCreateReg は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_FAIL を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。 この場合、データベースの保全性に関する重大な問題が発生している可能性が あるため、プログラムで FLGTerm を呼び出して情報カタログ・マネージャーを終了させる必要があります。
データベースの状態によっては、バックアップ用データベース・ファイルを 使用してデータベースを回復させなければならないことがあります。 情報カタログ・データベースの回復に関する詳細については、 情報カタログ・マネージャー 管理の手引き を参照してください。
FLGCreateReg エラーとは無関係なコミットされていない変更内容が情報カタログ・マネージャーによっ て除去されないようにするために、プログラム内のこの呼び出しの直前 に FLGCommit 呼び出しを組み込んでください。