作業単位の開始以降または最後のコミット点以降に情報カタログに対して 行われたすべての変更内容をコミットするために使用します。
許可
管理者またはユーザー
構文
APIRET APIENTRY FLGCommit (PFLGEXTCODE pExtCode)
パラメーター
戻された理由コードの説明については、付録 D, 情報カタログ・マネージャーの理由コードを参照してくだ さい。
使用方法
情報カタログ・データベースに対して行われた変更内容を永久的なものにするには、 プログラムの中で、変更を行ったあとで FLGCommit を呼び出すようにしてください。 一般に、プログラムがデータベースに対してなんらかの変更を行ったあとでは、 常に FLGCommit を呼び出すようにすることができます。
特に以下のような状況では、データベースに対する変更をコミットすること をお勧めします。
図 45 は、FLGCommit を呼び出す C 言語コードを示しています。
図 45. C 言語による FLGCommit の呼び出しのサンプル
APIRET rc; // Declare reason code from FLGCommit
FLGEXTCODE ExtCode = 0; // Declare extended code
.
.
rc = FLGCommit(&ExtCode); // pass the address of
// extended code
特別なエラー処理
FLGCommit でデータベース・エラーが発生すると、情報カタログ・マネージャーは、 プログラム内で直前に行われたコミット点にデータベースをロールバックします。
このロールバックが正常に行われた場合、FLGCommit は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_COMPLETE を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。
考慮事項: このロールバックが失敗した場合には、FLGCommit は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_FAIL を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。 この場合、データベースの保全性に関する重大な問題が発生している可能性が あるため、プログラムで FLGTerm を呼び出して情報カタログ・マネージャーを終了させる必要があります。
データベースの状態によっては、バックアップ用データベース・ファイルを 使用してデータベースを回復させなければならないことがあります。 情報カタログ・データベースの回復に関する詳細については、 情報カタログ・マネージャー 管理の手引き を参照してください。