レポートスタイルのクエリーを実行して、選択したデータベース・メンバーの情報をリストします。
構文
ESS_FUNC_M EssQueryDatabaseMembers (
hCtx, mbrQuery
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
mbrQuery |
ESS_STR_T |
メンバー・クエリー文字列。クエリー文字列は、レポート指定に類似のコマンドです。有効なクエリー文字列は、注意を参照してください。 |
備考
NULL文字列が戻されるまでEssGetStringを呼び出して、このクエリーから戻されたメンバー情報を読み取る必要があります。
この関数では、属性メンバー・ロング名がサポートされます。
レポート指定の詳細は、『Oracle Essbaseテクニカル・リファレンス』を参照してください。
この関数は、ブール値bSpanRelPartがEssSetSpanRelationalPartitionによって設定されている場合に、リレーショナル・パーティションとして保管されているメンバーについての情報を戻すことができます。この関数は、メンバー名、別名(リレーショナル・メンバーのメンバー名と同じ)および次元/世代番号に基づいた、メンバーのソートをサポートします。他のオプションについては、リレーショナル・メンバーは同一に扱われ、メンバーのリストの最下位に表示されます。
メンバー選択文字列にはリレーショナル・ストアでサポートされないものもあります。この関数は、次のメンバー選択文字列についてのリレーショナル情報を戻すことができます:
ALLINSAMEDIM
DIMTOP
CHILDRENOF
DESCENDANTSOF
PARENTOF
ANCESTORSOF
ALLSIBILINGSOF
メンバー・クエリー文字列は、選択文字列、オプションのソート・コマンドおよび後続のオプション出力コマンドから構成されます。次の形式を使用します:
mbrQuery ==: <selectionstring> [<sortcommand> [<outputcommand>] ]
メンバー<selectionstring>に有効な値は次のとおりです:
<CHILDRENOF -- returns ICHILDRENOF
<ALLINSAMEDIM
<DIMTOP
<OFSAMEGENERATION
<ONSAMELEVELAS
<ANCESTORSOF -- returns IANCESTORSOF
<PARENTOF
<DESCENDANTSOF -- returns IDESCENDANTSOF
<ALLSIBLINGSOF
<LSIBLINGOF
<sortcommand>に有効な値は次のとおりです:
<SORTASCENDING
<SORTDESCENDING
<SORTNONE
<SORTMBRNAMES
<SORTALTNAMES
<SORTMBRNUMBERS
<SORTDIMNUMBERS
<SORTLEVELNUMBERS
<SORTGENERATION
<outputcommand>の形式は次のとおりです:
<outputcommand> ==: Item [separator] | FORMAT {<item> <separator> }
メンバー情報に関する1アイテムのリストを取得するには、次の出力コマンドを使用します:
<outputcommand> ==: <MBRNAMES |
<ALTNAMES |
<MBRNUMBERS |
<DIMNUMBERS |
<LEVELNUMBERS |
<GENERATIONS |
<CALCSTRINGS |
<UCALCS |
<TABSEPARATED |
<SPACESEPARATED |
<COMMASEPARATED |
<NEWLINESEPARATED |
<ATTRIBUTES
メンバーの複数の情報アイテムのリストを取得するには、フォーマット指定句を使用します。リストしたいアイテム、順序、区切り文字を指定します。フォーマット指定句の構文は次のとおりです:
<FORMAT <item> [<separator>] {<item> [<separator>]}
<item>に有効な値は次のとおりです:
MBRNAMES
ALTNAMES
MBRNUMBERS
DIMNUMBERS
LEVELNUMBERS
GENERATIONS
CALCSTRINGS
UCALCS
ATTRIBUTES
ATTRIBUTESは、属性の数と、それに続く属性名のタブ区切りリストとしてリストされます。
<separator>に有効な値は次のとおりです:
TABSEPARATED
SPACESEPARATED
COMMASEPARATED
NEWLINESEPARATED
区切り文字を指定しない場合のデフォルトはTABSEPARATEDです。
以下にスクリプト例を示します:
login "local" "user1" "password" "" ""
select "attr" "attr"
GetMembers "<NEWLINESEPARATED
<FORMAT {
MBRNAMES SPACESEPARATED ALTNAMES TABSEPARATED
MBRNUMBERS SPACESEPARATED DIMNUMBERS TABSEPARATED
LEVELNUMBERS SPACESEPARATED GENERATIONS TABSEPARATED
CALCSTRINGS SPACESEPARATED UCALCS TABSEPARATED
DIMTYPES SPACESEPARATED STATUSES TABSEPARATED
ATTRIBUTES
}
<DESCENDANTS Product "
戻り値
なし。
アクセス
この関数を使用するには、呼出し元がデータベースに対して少なくとも読取りアクセス権(ESS_PRIV_READ)を持っていて、EssSetActiveを使用してそのデータベースをアクティブなデータベースとして選択している必要があります。
例
ESS_STS_T
ESS_GetMembers (ESS_HCTX_T hCtx,
ESS_HINST_T hInst
)
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_STR_T mString = NULL;
sts = EssQueryDatabaseMembers (hCtx,
"<ALLINSAMEDIM Year");
if (!sts)
sts = EssGetString (hCtx, &mString);
while ((!sts) && (mString != NULL))
{
printf ("%s\r\n", mString);
EssFree (hInst, mString);
sts = EssGetString (hCtx, &mString);
}
return(sts);
}
関連トピック