指定した属性メンバーまたは属性次元についてのメンバー情報にクエリーを行います。
構文
パラメータ | データ型 | 説明 |
---|---|---|
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); } } }
関連トピック