指定した属性メンバーまたは属性次元についてのメンバー情報にクエリーを行います。
構文
| パラメータ | データ型 | 説明 |
|---|---|---|
hOutline; |
ESS_HOUTLINE_T |
アウトラインのハンドル |
pAttributeQuery; |
ESS_ATTRIBUTEQUERY_T |
クエリーを定義する構造体 |
pCount; |
ESS_PULONG_T |
戻されたメンバーのハンドルの数 |
pphMemberArray; |
ESS_PPHMEMBER_T |
戻されたメンバーのハンドルの配列へのポインタ |
備考
この関数を呼び出す前に、EssOtlOpenOutlineQueryを呼び出し、クエリー・モードでアウトラインを開いてください。
例
void ESS_OtlQueryAttributes()
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_HMEMBER_T hMember;
ESS_OBJDEF_T Object;
ESS_APPNAME_T szAppName;
ESS_DBNAME_T szDbName;
ESS_OBJNAME_T szFileName;
ESS_SHORT_T hOutlineQuery;
ESS_ATTRIBUTEQUERY_T pAttributeQuery;
ESS_ULONG_T Count = 0;
ESS_PHMEMBER_T phMemberArray = ESS_NULL;
ESS_PMBRINFO_T pMbrInfo = ESS_NULL;
int index;
memset(&pAttributeQuery, 0x00, sizeof(ESS_ATTRIBUTEQUERY_T));
memset(&Object, '\0', sizeof(Object));
Object.hCtx = hCtx;
Object.ObjType = ESS_OBJTYPE_OUTLINE;
strcpy(szAppName, "Sample");
strcpy(szDbName, "Basic");
strcpy(szFileName, "Basic");
Object.AppName = szAppName;
Object.DbName = szDbName;
Object.FileName = szFileName;
sts = EssOtlOpenOutlineQuery(hCtx, &Object, &hOutlineQuery);
printf("EssOtlOpenOutlineQuery() sts: %ld\n",sts);
pAttributeQuery.bInputMemberIsHandle == ESS_FALSE;
pAttributeQuery.uInputMember.szMember = "100-10";
pAttributeQuery.usInputMemberType = ESS_BASE_MEMBER;
pAttributeQuery.usOutputMemberType = ESS_ATTRIBUTE_MEMBER;
pAttributeQuery.usOperation = ESS_ALL;
pAttributeQuery.Attribute.usDataType = ESS_ATTRMBRDT_NONE;
sts = EssOtlQueryAttributes(hOutlineQuery, &pAttributeQuery, &Count, &phMemberArray);
printf("EssOtlQueryAttributes() sts: %ld\n",sts);
if (!sts && phMemberArray)
{
printf("\n------- Query Results -------\n");
for (index = 0; index < Count; index++)
{
sts = EssOtlGetMemberInfo(hOutlineQuery,phMemberArray[index],&pMbrInfo);
printf("\t%s\n",pMbrInfo->szMember);
}
if (Count && phMemberArray)
{
sts = EssOtlFreeMembers(hOutlineQuery,Count, phMemberArray);
}
}
}
関連トピック