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

FLGDeleteTypeExt

ユーザー定義のオブジェクト・タイプおよびそのオブジェクト・タイプの インスタンス、それらのインスタンスに付加された Comments オブジェクト、 およびそれらのインスタンスが参加している関係を削除します。 オブジェクト・タイプ登録の削除もします。

Program および Attachment 区分以外のどの区分のオブジェクト・タイプでも削除するこ とができます。情報カタログ・マネージャーは、情報カタログを作成中にこれらの区分を供給するからです。

許可

管理者

構文



APIRET  APIENTRY   FLGDeleteTypeExt( PSZ              pszObjTypeID,
                                  PFLGEXTCODE  pExtCode );

パラメーター

pszObjTypeID (PSZ) − 入力
削除するオブジェクト・タイプに関する 6 文字のシステム生成された固有の ID (オブジェクト・タイプ ID) を指します。

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

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

戻された理由コードの説明については、付録 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 呼び出しを組み込んでください。


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