ユーザー定義のオブジェクト・タイプおよびそのオブジェクト・タイプの インスタンス、それらのインスタンスに付加された Comments オブジェクト、 およびそれらのインスタンスが参加している関係を削除します。 オブジェクト・タイプ登録の削除もします。
Program および Attachment 区分以外のどの区分のオブジェクト・タイプでも削除するこ とができます。情報カタログ・マネージャーは、情報カタログを作成中にこれらの区分を供給するからです。
許可
管理者
構文
APIRET APIENTRY FLGDeleteTypeExt( PSZ pszObjTypeID,
PFLGEXTCODE pExtCode );
パラメーター
戻された理由コードの説明については、付録 D, 情報カタログ・マネージャーの理由コードを参照してくだ さい。
使用方法
前提条件
入力パラメーターとして指定するオブジェクト・タイプ ID は、存在してい るものでなければなりません。
制約事項
FLGDeleteTypeExt は、異なったオブジェクト・タイプを持つオブジェクトのインスタンス を含む Grouping 区分のオブジェクト・インスタンスは削除しません。 このような Grouping 区分のインスタンスが存在する場合は、オブジェクト・タイプ を削除するまえに FLGDeleteTree を使って、それらを削除しなくてはなりません。
情報カタログ内に自動的に作成された Programs オブジェクト・タイプは、 削除することができません。 ただし、1 つまたは複数の Program インスタンスに関連する オブジェクト・タイプは削除することができます。 Program インスタンスは自動的に更新され、HANDLES 特性と PARMLIST 特性の値が消去されます。
情報カタログ内に自動的に作成された Comments オブジェクト・タイプは、 削除することができません。
情報カタログ更新の制御
FLGDeleteTypeExt は、オブジェクト・タイプと共に、オブジェクト・タイプのすべ てのインスタンスを削除してしまうので、FLGDeleteTypeExt を呼び出すまえに、 あるタイプのオブジェクトを検索して、削除したいオブジェクト・タイプの 存在するオブジェクトのどれも保存しなくてよいことを確認したほうがよいでしょう。
プログラムを可能な限り、情報カタログと同期化させるために、FLGDeleteTypeExt が 正常に完了したあとで、呼び出しを FLGCommit (FLGCommit参照) に 組み込む必要があります。 FLGDeleteTypeExt が正常に完了しない場合は、呼び出し を FLGRollback (FLGRollback参照) に組み込む必要があります。
図 64 は、FLGDeleteTypeExt 呼び出しを出すために必要な C 言語コードを示しています。 このサンプル・コードは情報カタログから、MYIMAGE オブジェクト・タイプ、 MYIMAGE オブジェクト・タイプのすべてのインスタンス、 MYIMAGE オブジェクト・タイプのインスタンスに付加されたされたすべてのコメント、 MYIMAGE インスタンスが参加するすべての関係、 および MYIMAGE オブジェクト・タイプの登録を削除します。
図 64. C 言語による FLGDeleteTypeExt の呼び出しのサンプル
APIRET rc; // Declare reason code
UCHAR pszTypeID[FLG_OBJTYPID_LEN+1];
FLGEXTCODE xc = 0; // Declare extended code
.
. /* processing */
.
rc = FLGDeleteTypeExt (pszTypeID,
&xc);
特別なエラー処理
FLGDeleteTypeExt でデータベース・エラーが発生すると、情報カタログ・マネージャーは、 プログラム内で最後に行われたコミット点にデータベースをロールバックします。
このロールバックが正常に行われた場合、FLGDeleteTypeExt は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_COMPLETE を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。
考慮事項: このロールバックが失敗した場合には、FLGDeleteTypeExt は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_FAIL を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。 この場合、データベースの保全性に関する重大な問題が発生している可能性が あるため、プログラムで FLGTerm を呼び出して情報カタログ・マネージャーを終了させる必要があります。
データベースの状態によっては、バックアップ用データベース・ファイルを 使用してデータベースを回復させなければならないことがあります。 情報カタログ・データベースの回復に関する詳細については、 情報カタログ・マネージャー 管理の手引き を参照してください。
FLGDeleteTypeExt エラーとは無関係なコミットされていない変更内容が情報カタログ・マネージャーによっ て除去されないようにするために、プログラム内のこの呼び出しの直前 に FLGCommit 呼び出しを組み込んでください。