情報カタログのすべてのオブジェクト・タイプを探索し、探索基準に一致する インスタンス名 (名前特性) のインスタンスを探し出すために使用します。
許可
管理者またはユーザー
構文
APIRET APIENTRY FLGSearchAll( PFLGHEADERAREA pSelCriteriaStruct,
PFLGHEADERAREA * ppListStruct,
PFLGEXTCODE pExtCode );
パラメーター
この構造には、探索基準の特性の仕様と値が含まれます。 FLGSearchAll の探索基準としては、オブジェクト・インスタンスの外部名 (Name) の 値だけを使用することができます。
pSelCriteriaStruct が NULL にセットされていると、情報カタログ・マネージャーは、 最大約 5000 までの、情報カタログ内のすべてのインスタンスを戻します。
すべてのインスタンスは、使用するデータベース管理システムの照合順序の 昇順に従って、最初にオブジェクト・タイプ名によって分類され、次に インスタンスの外部名 (名前の値) によって分類されます。
FLGSearchAll によって戻すことのできるオブジェクト・インスタンスの 最大数は計算機で使用可能な記憶域によって異なり、約 5000 です。
戻された理由コードの説明については、付録 D, 情報カタログ・マネージャーの理由コードを参照してくだ さい。
入力構造
FLGSearchAll の探索基準を指定するには、以下の入力構造を定義する必要があります。 この構造は、ヘッダー域、名前特性のみを含むことのできる定義域、および オブジェクト域からなります。
FLGSearchAll 入力構造の定義域は、図 147 に示すとおりに指定 しなければなりません。 バイト・オフセットの意味については、情報カタログ・マネージャー API 入力構造を参照してくだ さい。
出力構造
FLGSearchAll が作成する出力構造には、図 148 に示すように、 探索基準を使用して検索されたオブジェクトのリストが入っています。
出力構造のオブジェクト域には、入力探索基準に一致したすべての オブジェクト・インスタンスのリストが入ります。 戻されたオブジェクト・インスタンスは、FLGID の値と オブジェクト・インスタンスの外部名によって識別されます。
使用方法
探索基準としては、オブジェクト・インスタンスの 外部名 (名前) の値だけを使用することができます。 それ以外の特性値は、FLGSearchAll では使用することができません。 探索基準に別の特性の値を使用したい場合には、FLGSearch を 使用してください (FLGSearchを参照)。
探索基準にはワイルド・カード 文字を含めることができます。 ワイルド・カード文字を使用すると、特定の特性の値の中から探し出したい パターンを指定することができます。 このデータベースでは、次の 2 種類のワイルド・カード文字がサポートされます。
ユーザー・インターフェースではこれと異なるワイルド・カード文字を使用することもできますが、 FLGSearchAll で使用できるのは % 文字と _ 文字 だけです。
探索基準にワイルド・カード文字を含める場合には、 ファジー探索フラグ (fs) を Y にセットしなければなりません。
定義域で以下のフラグの値を指定する必要があります。
情報カタログが、DB2 UDB (OS/390 版) にある場合、
情報カタログ更新の制御
FLGSearchAll はデータベースに対して変更をコミットします。 FLGSearchAll 呼び出しの前に行われた予期しない変更が情報カタログ・マネージャーによって コミットされないようにするために、プログラムの中で、FLGSearchAll を 出す前に FLGCommit または FLGRollback を出すようにしてください。
出力構造に割り振られたメモリーの解放
FLGSearchAll が出力構造にあるデータを戻した場合、出力構造に戻されたデータを 保管してから、FLGFreeMem を呼び出さなくてはなりません (FLGFreeMem参照)。 メモリーを解放するのに、たとえば C 言語指示のような他の方式は使用しないで ください。
図 149 は、FLGSearchAll 呼び出しを出すために必要な C 言語コード を示しています。 このサンプル・コードは、すべてのオブジェクト・タイプ・インスタンスから 特定の名前を探索します。
図 149. C 言語による FLGSearchAll の呼び出しのサンプル
APIRET rc; // reason code from FLGSearchAll
PFLGHEADERAREA pSelCriteria; // search criterion input structure pointer
PFLGHEADERAREA * ppListStruct; // pointer to search result pointer
FLGEXTCODE ExtCode = 0; // Declare extended code
.
. /* provide values for input parameters */
.
rc = FLGSearchAll ( pSelCriteria, // input structure pointer
ppListStruct, // pass the address of
// output structure pointer
&ExtCode);
図 150 は、この探索に関する特性と値の情報が入る 探索条件入力構造 (pSelCriteria によって指し示されます) を示しています。
図 150. FLGSearchAll のための入力構造のサンプル
この例では、探索基準にワイルドカード文字を使用してファジー探索を行 うため、定義域のバイト 129 のファジー探索フラグは Y にセットされ ています。
探索基準の文字との厳密な一致は必要でないため、定義域のバイト 128 の 大文字小文字の区別フラグは N にセットされています。 図 151 は、探索によって得られた情報カタログ・マネージャー・オブジェクトが入った 出力構造を示しています (ppListStruct は、この出力構造を指すポインターの アドレスを指します)。
図 151. FLGSearchAll のための出力構造のサンプル
指定された部分オブジェクト・インスタンスは、2 つの異なるオブジェクト・タイプ の 9 つのインスタンスによって使用されています。