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

FLGSearchAll

情報カタログのすべてのオブジェクト・タイプを探索し、探索基準に一致する インスタンス名 (名前特性) のインスタンスを探し出すために使用します。

許可

管理者またはユーザー

構文



APIRET  APIENTRY   FLGSearchAll( PFLGHEADERAREA   pSelCriteriaStruct,
                                 PFLGHEADERAREA * ppListStruct,
                                  PFLGEXTCODE  pExtCode );

パラメーター

pSelCriteriaStruct (PFLGHEADERAREA) − 入力
入力構造を指します。

この構造には、探索基準の特性の仕様と値が含まれます。 FLGSearchAll の探索基準としては、オブジェクト・インスタンスの外部名 (Name) の 値だけを使用することができます。

pSelCriteriaStruct が NULL にセットされていると、情報カタログ・マネージャーは、 最大約 5000 までの、情報カタログ内のすべてのインスタンスを戻します。

ppListStruct (PFLGHEADERAREA) − 出力
検索によって選択されたオブジェクト・インスタンスのリストが入っている 出力構造を指すポインターのアドレスを指します。 出力構造がない場合、出力構造へのポインターは NULL にセットされます。 各インスタンスについて以下の情報が示されます。

すべてのインスタンスは、使用するデータベース管理システムの照合順序の 昇順に従って、最初にオブジェクト・タイプ名によって分類され、次に インスタンスの外部名 (名前の値) によって分類されます。

FLGSearchAll によって戻すことのできるオブジェクト・インスタンスの 最大数は計算機で使用可能な記憶域によって異なり、約 5000 です。

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

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

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

入力構造

FLGSearchAll の探索基準を指定するには、以下の入力構造を定義する必要があります。 この構造は、ヘッダー域、名前特性のみを含むことのできる定義域、および オブジェクト域からなります。

図 147. FLGSearchAll 入力構造


Figure FLAA2058 not displayed.

FLGSearchAll 入力構造の定義域は、図 147 に示すとおりに指定 しなければなりません。 バイト・オフセットの意味については、情報カタログ・マネージャー API 入力構造を参照してくだ さい。

出力構造

FLGSearchAll が作成する出力構造には、図 148 に示すように、 探索基準を使用して検索されたオブジェクトのリストが入っています。

出力構造のオブジェクト域には、入力探索基準に一致したすべての オブジェクト・インスタンスのリストが入ります。 戻されたオブジェクト・インスタンスは、FLGID の値と オブジェクト・インスタンスの外部名によって識別されます。

図 148. FLGSearchAll 出力構造


Figure FLAA2059 not displayed.

使用方法

探索基準としては、オブジェクト・インスタンスの 外部名 (名前) の値だけを使用することができます。 それ以外の特性値は、FLGSearchAll では使用することができません。 探索基準に別の特性の値を使用したい場合には、FLGSearch を 使用してください (FLGSearchを参照)。

探索基準にはワイルド・カード 文字を含めることができます。 ワイルド・カード文字を使用すると、特定の特性の値の中から探し出したい パターンを指定することができます。 このデータベースでは、次の 2 種類のワイルド・カード文字がサポートされます。

%
0 個またはそれ以上の文字を表します。
_
1 つの文字を表します。

ユーザー・インターフェースではこれと異なるワイルド・カード文字を使用することもできますが、 FLGSearchAll で使用できるのは % 文字と _ 文字 だけです。

探索基準にワイルド・カード文字を含める場合には、 ファジー探索フラグ (fs) を Y にセットしなければなりません。

定義域で以下のフラグの値を指定する必要があります。

cs
バイト 128 の大文字小文字の区別フラグ。 有効な値は、大文字小文字を区別する場合には Y、区別しない場合には N です。

情報カタログが、DB2 UDB (OS/390 版) にある場合、

  • すべて大文字の値 (デフォルト) で作成され、大文字小文字の 区別フラグは N でなければなりません。
  • 大文字小文字混合文字の値で作成され、大文字小文字の区別フラグは Y でなければ なりません。

fs
バイト 129 のファジー探索フラグ。 有効な値は、ファジー探索を行う場合には Y、行わない場合には N です。 ワイルド・カード (% または _) を探索基準に含めて探索 を行いたい場合には、この値を Y にしなければなりません。

情報カタログ更新の制御

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 のための入力構造のサンプル


Figure FLAA2060 not displayed.

この例では、探索基準にワイルドカード文字を使用してファジー探索を行 うため、定義域のバイト 129 のファジー探索フラグは Y にセットされ ています。

探索基準の文字との厳密な一致は必要でないため、定義域のバイト 128 の 大文字小文字の区別フラグは N にセットされています。 図 151 は、探索によって得られた情報カタログ・マネージャー・オブジェクトが入った 出力構造を示しています (ppListStruct は、この出力構造を指すポインターの アドレスを指します)。

図 151. FLGSearchAll のための出力構造のサンプル


Figure FLAA2061 not displayed.

指定された部分オブジェクト・インスタンスは、2 つの異なるオブジェクト・タイプ の 9 つのインスタンスによって使用されています。


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