BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA Tuxedo FML リファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


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_PTRFLD_FML32、または FLD_VIEW32 のフィールド・タイプが使用されると、この関数は異常終了します。これらのフィールド・タイプの 1 つが指定されると、FerrorFEBADOP が設定されます。

workstation プラットフォームでは、これらの関数はサポートされていません。

マルチスレッドのアプリケーション中のスレッドは、TPINVALIDCONTEXT を含め、どのコンテキスト状態で実行していても、ここで記述する関数、Fboolco()Fboolco32()Fvboolco()、または Fvboolco32() の呼び出しを発行できます。

戻り値

この関数は、エラー発生時に NULL を返し、Ferror を設定してエラー条件を示します。

エラー

次の条件の場合、Fboolco() は異常終了し、Ferror を次の値に設定します。

[FMALLOC]

"malloc failed"
malloc() を使用しての領域の動的な割り当てが失敗しました。

[FSYNTAX]

"bad syntax in Boolean expression"
Fboolco() は、認識できないフィールド名以外に、論理表現に文法エラーを見つけました。

[FBADNAME]

"unknown field name"
フィールド・テーブルまたはビュー・ファイルにないフィールド名が指定されました。

[FEINVAL]

"invalid argument to function"
呼び出された関数の引数の 1 つが無効でした (たとえば、expression が NULL)。

[FBADVIEW]

"cannot find or get view"
VIEWDIR または VIEWFILES で指定したファイルに viewname が見つかりません。

[FVFOPEN]

"cannot find or open view file"
viewname 検索中にプログラムで VIEWDIR または VIEWFILES で指定したファイルが 1 つ見つかりませんでした。

[EUNIX]

"operating system error"
viewname 検索中にプログラムは VIEWDIR または VIEWFILES で指定したファイルを 1 つ読み込み用に開けませんでした。

[FVFSYNTAX]

"bad viewfile"
viewname 検索中に VIEWDIR または VIEWFILES で指定したファイルの 1 つが破壊されていたか、VIEW ファイルではありませんでした。

[FMALLOC]

"malloc failed"
viewname 検索中に malloc() が VIEW 情報を格納するための領域の割り当てに失敗しました。

[FEBADOP]

"invalid field type"
指定されたフィールド・タイプは無効です (FLD_PTRFLD_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)

 

先頭へ戻る 前のトピックへ 次のトピックへ