Adds a query hint to the outline to aid in view selection.
Hints are numbered from 1 to n. The first query hint has a hint number of 1. Each new query hint is added to the end of the list, with its number increased by 1.
Syntax
ESS_FUNC_M EssOtlAddQueryHint (hOutline, numMembers, pMemberArray);
Parameter | Data Type | Description |
---|---|---|
hOutline | ESS_HOUTLINE_T | Outline context handle (input). |
numMembers | ESS_SHORT_T | Number of members in the array provided - usually the number of real dimensions in the outline. (input) |
pMemberArray | ESS_PHMEMBER_T | An array of members for the hint. Usually the array has one member per real dimension, with NULL used for dimensions that are not part of the hint. This array needs to be allocated. |
Notes
Level usage constraints override query hints whenever a conflict occurs (see SetAggLevelUsage).
Hints may not contain dynamic, label-only, or shared members.
Hints may become invalid when the outline changes. Invalid hints result in a warning message.
Query hints enable you to influence normal view selection by informing Essbase about the profile of common queries.
This function is applicable only to Release 9.3 or higher aggregate storage databases.
Query hints are written as MDX tuples, with no more than one member from each dimension specified.
Each member used in the query hint is considered a representative member. Essbase Server interprets representative members as "this member or any member at the similar level of aggregation." For example, using a query hint of (Qtr1, Sales, 100, East, Actual) on Sample Basic means that quarterly, actual profit margin measures for level 1 products at level 1 markets is a common type of query.
For any given dimension, Essbase Server interprets the omission of representative members to mean that any member from the dimension may be used in a query. For example, using a query hint of (Sales, 100, East) on Sample Basic means that profit margin measures for level 1 products at level 1 markets is a common type of query, regardless of Year and Scenario dimensions, which were omitted. The hint (Sales, 100, East) is treated as identical to (NULL, Sales, 100, East, NULL).
Return Value
Returns 0 if successful.
Example
ESS_STS_T sts = ESS_STS_NOERR; ESS_HOUTLINE_T hOutline = ESS_NULL; ESS_HMEMBER_T hMember1 = ESS_NULL; ESS_HMEMBER_T hMember2 = ESS_NULL; ESS_HMEMBER_T hMember3 = ESS_NULL; ESS_HMEMBER_T hMember[3]; ESS_SHORT_T nmMembers = 3; /* code to assign hOutline variable omitted */ /* code to assign hMember1 variable to member "Sales" omitted */ /* code to assign hMember2 variable to member "100" omitted */ /* code to assign hMember3 variable to member "East" omitted */ hMember[0] = hMember1; hMember[1] = hMember2; hMember[2] = hMember3; if (hOutline) { sts = EssOtlAddQueryHint(hOutline, nmMembers, hMember); if (sts) printf("Error (%ld) adding QueryHint\n", sts); } else { if (!hOutline) printf("Outline not provided\n"); }
See Also