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

FLGDeleteType

ユーザー定義のオブジェクト・タイプを削除するために使用します。

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

許可

管理者

構文



APIRET  APIENTRY   FLGDeleteType( PSZ              pszObjTypeID,
                                  PFLGEXTCODE  pExtCode );

パラメーター

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

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

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

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

使用方法

前提条件

入力パラメーターとして指定するオブジェクト・タイプ ID は、存在してい るものでなければなりません。

このオブジェクト・タイプのオブジェクト・インスタンスが存在していてはなりません。 このオブジェクト・タイプのインスタンスが存在している場合には、 FLGDeleteInst を使用してそれを削除してからでなければ、 オブジェクト・タイプを削除することはできません。 FLGDeleteInst を使用して各インスタンスを個別に削除することも、 タグ言語ファイルをインポートしてインスタンスを一括して削除することもできます。

情報カタログ内に自動的に作成された Programs オブジェクト・タイプは、 削除することができません。 ただし、1 つまたは複数の Program インスタンスに関連する オブジェクト・タイプは削除することができます。 Program インスタンスは自動的に更新され、HANDLES 特性と PARMLIST 特性の値が消去されます。

情報カタログ内に自動的に作成された Comments オブジェクト・タイプは、 削除することができません。

情報カタログ更新の制御

FLGDeleteType が正常に完了しない場合は、呼び出し を FLGRollback (FLGRollback参照) に組み込む必要があります。 FLGDeleteType が正常に完了したあとで、FLGCommit を呼び出さず に、FLGDeleteReg への呼び出しが完了するまで待ってください。

図 63 は、FLGDeleteType API 呼び出しを出すために必要な C 言語コード を示しています。 このサンプル・コードは、情報カタログからオブジェクト・タイプを削除します

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

 APIRET         rc;                   // Declare reason code
 UCHAR           pszObjTypeID[FLG_OBJTYPID_LEN + 1];
 FLGEXTCODE     ExtCode = 0;                // Declare extended code
   .
   .  /* Get the object type ID of MYIMAGE using FLGConvertID. */
   .
 rc = FLGDeleteType (pszObjTypeID,
                       &ExtCode);
   .
   . // if (rc == 0)
   . //   rc = FLGDeleteReg (pszObjTypeID, &ExtCode);
   . // if (rc == 0)
   . //   rc = FLGCommit (&ExtCode);
   . // else
   . //   rc = FLGRollback (&ExtCode);
   .

MYIMAGE のインスタンスが存在している場合には、それらを削除してか らでなければ MYIMAGE オブジェクト・タイプを削除することはできません。 管理者のユーザー・インターフェースを使用して各インスタンスを個別に削除することも、 タグ言語ファイルをインポートしてインスタンスを一括して削除することもできます。

特別なエラー処理

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

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

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

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

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


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