EssFreeStructure

Frees memory dynamically allocated by EssGetAttributeInfo() and EssGetMemberInfo() for string type attribute information.

Syntax

ParameterData TypeDescription

hInst;

ESS_HINST_T

The instance handle of the process that called EssGetAttributeInfo() or EssGetMemberInfo() to allocate the structure.

structId;

ESS_ULONG_T

One of the following constant identifiers for the structure:

  • ESS_DT_STRUCT_ATTRIBUTEINFO

  • ESS_DT_STRUCT_ATTRSPECS

  • ESS_DT_STRUCT_MEMBERINFO

count;

ESS_ULONG_T

Number of structures

structPtr;

ESS_PVOID_T

Pointer to memory

Notes

 

Access

This function requires no special privileges.

Example

void  ESS_GetAttributeSpecifications()
{
   ESS_STS_T         sts = ESS_STS_NOERR;
   ESS_PATTRSPECS_T  pAttrSpecs;

   sts = EssGetAttributeSpecifications(hCtx, &pAttrSpecs);

   printf("\n ---------Attribute Specifications--------\n\n");
   if (sts) return(sts);

   switch(pAttrSpecs->usGenNameBy)
   {
      case ESS_GENNAMEBY_PREFIX:
         printf("\n Prefix/Suffix   : Prefix");
         break;
      case ESS_GENNAMEBY_SUFFIX:
         printf("\n Prefix/Suffix   : Suffix");
            break;
      default:
         printf("\n Prefix/Suffix   : None");
         break;
   }
   switch(pAttrSpecs->usUseNameOf)
   {
      case ESS_USENAMEOF_PARENT:
         printf("\n Use Name of     : Parent");
         break;
      case ESS_USENAMEOF_GRANDPARENTANDPARENT:
         printf("\n Use Name of     : Grand Parent and Parent");
         break;
      case ESS_USENAMEOF_ALLANCESTORS:
         printf("\n Use Name of     : All Ancestors");
         break;
      case ESS_USENAMEOF_DIMENSION:
         printf("\n Use Name of     : Dimension");
         break;
      case ESS_USENAMEOF_NONE:
         printf("\n Use Name of     : None");
         break;
      default:
         printf("\n Use Name of     : Invalid setting");
         break;
   }
   switch(pAttrSpecs->cDelimiter)
   {
      case ESS_DELIMITER_PIPE:
         printf("\n Delimiter       : '|'");
         break;
      case ESS_DELIMITER_UNDERSCORE:
         printf("\n Delimiter       : '_'");
         break;
      case ESS_DELIMITER_CARET:
         printf("\n Delimiter       : '^'");
         break;
      default:
         printf("\n Delimiter       : Invalid setting");
         break;
   }

   switch(pAttrSpecs->usDateFormat)
   {
      case ESS_DATEFORMAT_DDMMYYYY :
         printf("\n Date Format     : DD-MM-YYYY");
         break;
      case ESS_DATEFORMAT_MMDDYYYY :
         printf("\n Date Format     : MM-DD-YYYY");
         break;
      default:
         printf("\n Date Format     : Invalid setting");
         break;
   }
   switch(pAttrSpecs->usBucketingType)
   {
      case ESS_UPPERBOUNDINCLUSIVE :
         printf("\n Bucketing Type  : Upper Bound inclusive");
         break;
      case ESS_UPPERBOUNDNONINCLUSIVE :
         printf("\n Bucketing Type  : Upper Bound non-inclusive");
         break;
      case ESS_LOWERBOUNDINCLUSIVE :
         printf("\n Bucketing Type  : Lower Bound inclusive");
         break;
      case ESS_LOWERBOUNDNONINCLUSIVE :
         printf("\n Bucketing Type  : Lower Bound non-inclusive");
         break;
      default:
         printf("\n Bucketing Type   : Invalid setting");
         break;
   }

   printf("\n Default for TRUE       : %s",pAttrSpecs->pszDefaultTrueString);
   printf("\n Default for FALSE      : %s",pAttrSpecs->pszDefaultFalseString);
   printf("\n Default for Attr Calc  : %s",pAttrSpecs->pszDefaultAttrCalcDimName);
   printf("\n Default for Sum        : %s",pAttrSpecs->pszDefaultSumMbrName);
   printf("\n Default for Count      : %s",pAttrSpecs->pszDefaultCountMbrName);
   printf("\n Default for Average    : %s",pAttrSpecs->pszDefaultAverageMbrName);
   printf("\n Default for Min        : %s",pAttrSpecs->pszDefaultMinMbrName);
   printf("\n Default for Max        : %s",pAttrSpecs->pszDefaultMaxMbrName);
   printf("\n");

   EssFreeStructure(hInst, ESS_DT_STRUCT_ATTRSPECS, 1,(ESS_PVOID_T)pAttrSpecs);
}

See Also