既存のクエリー・ヒントのコンテンツ(pMemberArray)を変更します。リリース9.3以上の集約ストレージ・データベースにのみ適用されます。
構文
ESS_FUNC_M EssOtlSetQueryHint (
hOutline, hintNum, numMembers, pMemberArray
);
パラメータ | データ型 | 説明 |
---|---|---|
hOutline |
ESS_HOUTLINE_T |
アウトラインのコンテキスト・ハンドル(入力)。 |
hintNum |
ESS_SHORT_T |
クエリー・ヒント番号(入力)。 |
numMembers |
ESS_SHORT_T |
提供された配列のメンバーの数 - 通常は、アウトライン(入力)の実次元の数。 |
pMemberArray |
ESS_PHMEMBER_T |
ヒント用のメンバーの配列。通常、配列には、実次元当たり1つのメンバーを持ち、NULLがヒントの一部でない次元に使用されます。この配列は割り当てる必要があります。(入力) |
備考
競合が発生したときに、レベル使用制約がクエリー・ヒントより優先されます(SetAggLevelUsageを参照)。
ヒントには、動的メンバー、ラベルのみメンバー、または共有メンバーは含まれない場合があります。
アウトラインが変化すると、ヒントは無効になる場合があります。無効なヒントにより警告メッセージが発生します。
共通クエリーのプロファイルについてEssbaseに通知することにより、ヒントは標準ビュー選択に影響を及ぼすことができます。
ヒントは、MDXタプルとして書かれており、指定された各次元からのメンバーを1つのみ含みます。
クエリー・ヒントで使用される各メンバーは、代表的なメンバーと考えられます。Essbaseサーバーは、「このメンバーまたは類似した集約レベルのメンバー」として、代表的なメンバーを解釈します。たとえば、Sample Basicで(Qtr1, Sales, 100, East, Actual)のクエリー・ヒントを使用すれば、四半期ごとに、レベル1マーケットでのレベル1製品の実績利益率のメジャーが、クエリーの一般タイプになります。
ある指定した次元について、Essbaseは、代表的なメンバーの省略を、次元からのメンバーをクエリーで使用できると解釈します。たとえば、Sample Basicで(Sales, 100, East)のクエリー・ヒントを使用すると、省略されているYearおよびScenario次元に関係なく、レベル1マーケットでのレベル1製品の利益率のメジャーが、クエリーの一般タイプになります。ヒント(Sales, 100, East)は、(NULL, Sales, 100, East, NULL)と同一のものとして扱われます。
戻り値
成功の場合、0が戻されます。
例
ESS_STS_T sts = ESS_STS_NOERR; ESS_HOUTLINE_T hOutline = ESS_NULL; ESS_SHORT_T nmHints = 0; ESS_SHORT_T i, j, hintNum; ESS_HMEMBER_T hMember[10]; /* (nm real dimensions) < 10 */ /* clear array just to be safe */ memset(hMember, 0x00, 10*sizeof(ESS_HMEMBER_T)); /* Code to assign hOutline variable omitted */ /* Code to assign hintNum variable omitted */ sts = EssOtlGetNumQueryHints(hOutline, &nmHints); if (sts) return sts; /* error out */ if (hintNum <= nmHints) { sts = EssOtlGetQueryHint(hOutline, hintNum, 10, hMember); if (sts) return sts; /* error out */ for (j = 0; j < 10; j++) { /* Code to inspect and change hMember[j] omitted */ } sts = EssOtlSetQueryHint(hOutline, hintNum, 10, hMember); if (sts) return sts; /* error out */ printf("Query-Hint number: (%d) updated\n", hintNum); } else { printf("Query-Hint number: (%d) does not exist\n", hintNum); }
関連トピック