|
|
Fboolco、Fboolco32、Fvboolco、Fvboolco32(3fml)
名前
Fboolco()、Fboolco32()、Fvboolco()、Fvboolco32() - 式をコンパイルし評価ツリーを返す
形式
#include <stdio.h>
#include "fml.h"
char *
Fboolco(char *expression)
char *
Fvboolco(char *expression, char *viewname)
#include "fml32.h"
char *
Fboolco32(char *expression)
char *
Fvboolco32(char *expression, char *viewname)
機能説明
Fboolco()は、expression が指す論理表現をコンパイルし、評価ツリーのポインタを返します。認識される表現は、C で認識される表現に近いものです。文法の表記は、『FML を使用した BEA Tuxedo アプリケーションのプログラミング』にあります。
Fboolco() が作成する評価ツリーは、下記の「関連項目」の項でリストされている他の論理関数に使用されます。したがって、式を再びコンパイルする必要はありません。
Fboolco32() は 32 ビット FML で使用されます。
Fvboolco() および Fvboolco32() は、同じ VIEW 機能を提供します。viewname パラメータは、フィールド・オフセットを取り出す VIEW を示します。
FLD_PTR、FLD_FML32、または FLD_VIEW32 のフィールド・タイプが使用されると、この関数は異常終了します。これらのフィールド・タイプの 1 つが指定されると、Ferror に FEBADOP が設定されます。
workstation プラットフォームでは、これらの関数はサポートされていません。
マルチスレッドのアプリケーション中のスレッドは、TPINVALIDCONTEXT を含め、どのコンテキスト状態で実行していても、ここで記述する関数、Fboolco()、Fboolco32()、Fvboolco()、または Fvboolco32() の呼び出しを発行できます。
戻り値
この関数は、エラー発生時に NULL を返し、Ferror を設定してエラー条件を示します。
エラー
次の条件の場合、Fboolco() は異常終了し、Ferror を次の値に設定します。
malloc() を使用しての領域の動的な割り当てが失敗しました。
Fboolco() は、認識できないフィールド名以外に、論理表現に文法エラーを見つけました。
フィールド・テーブルまたはビュー・ファイルにないフィールド名が指定されました。
呼び出された関数の引数の 1 つが無効でした (たとえば、expression が NULL)。
VIEWDIR または VIEWFILES で指定したファイルに viewname が見つかりません。
viewname 検索中にプログラムで VIEWDIR または VIEWFILES で指定したファイルが 1 つ見つかりませんでした。
viewname 検索中にプログラムは VIEWDIR または VIEWFILES で指定したファイルを 1 つ読み込み用に開けませんでした。
viewname 検索中に VIEWDIR または VIEWFILES で指定したファイルの 1 つが破壊されていたか、VIEW ファイルではありませんでした。
viewname 検索中に malloc() が VIEW 情報を格納するための領域の割り当てに失敗しました。
指定されたフィールド・タイプは無効です (FLD_PTR、FLD_FML32、および FLD_VIEW32) など)。
使用例
#include "stdio.h"
#include "fml.h"
extern char *Fboolco(¥|);
char *tree;
...
if((tree=Fboolco("FIRSTNAME %% 'J.*n' & SEX = 'M'")) == NULL)
F_error("pgm_name");
'J' で始まり 'n' で終わる (たとえば、John、Jean、Jurgen など) FIRSTNAME フィールドがバッファにあるか、SEX フィールドが 'M' に等しいかを検査する論理表現をコンパイルします。
tree 配列の最初の文字は、最下位バイトを形成します。次の文字は、最上位バイトを形成します。それぞれ、全体の配列の長さをバイト数で指定する unsigned 型 (16 ビット) です。この値は、複写あるいは配列の操作に役立ちます。
関連項目
Fboolev、Fboolev32、Fvboolev、Fvboolev32(3fml)、Fboolpr、Fboolpr32、Fvboolpr、Fvboolpr32(3fml)、Fldid、Fldid32(3fml)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|