# EssGBeginDataPoint

Description

EssGBeginDataPoint() begins a data point operation.

Syntax

    ESSG_FUNC_M EssGBeginDataPoint (hGrid, ulRow, ulColumn, ulOptions);

ESSG_HGRID_T | hGrid
ESSG_ULONG_T | ulRow
ESSG_ULONG_T | ulColumn
ESSG_ULONG_T | ulOptions

Parameters

hGrid | Handle passed back from EssGNewGrid.
ulRow | Row of the data point.
ulColumn | Column of the data point.
ulOptions | Reserved for future use. Should be set to zero.

Return Value

If successful, returns ESSG_STS_NOERR.

Notes

- Begins a data point operation.
- This function returns one member from each dimension describing the combination of members for a particular cell in the grid.
- The caller should pass in (EssGSendRows) enough information for Essbase to determine the members for the cell. It is safest to pass in all rows less than or equal to the ulRow parameter and all columns. The ulRow and ulColumn values are zero-based.

Access

None.

Example

    ESSG_VOID_T ESSG_BeginDataPoint(ESSG_HGRID_T hGrid)

    {
      ESSG_FUNC_M    sts = ESS_STS_NOERR;
      ESSG_ULONG_T         ulRow;
      ESSG_ULONG_T         ulColumn;
      ESSG_ULONG_T         ulOptions;
      ESSG_PPDATA_T        ppDataIn;
      ESSG_RANGE_T         rDataRangeIn;
      ESSG_ULONG_T         ulMembers, i;
      ESSG_PSTR_T          ppszMembers;
      ESSG_USHORT_T        usState;

         /* connect the grid to a database on the server */
         sts = EssGConnect(hGrid, "Rainbow", "Admin",
               "Password", "Demo", "Basic", ESSG_CONNECT_DEFAULT);

      if(sts == 0)
      {
         ppDataIn = BuildTable(&rDataRangeIn);

         ulRow = 1;
         ulColumn = 2;
         ulOptions = 0;

         /* start the data point operation */
         sts = EssGBeginDataPoint(hGrid, ulRow, ulColumn, ulOptions);
      }

      if(sts == 0)
      {
         /* send the entire grid to define the query */
         sts = EssGSendRows(hGrid, &rDataRangeIn,
               ppDataIn);
      }

      if(sts == 0)
      {
         /* perform the data point operation */
         sts = EssGPerformOperation(hGrid, 0);

         /* free the built data */
         FreeTwoDim(ppDataIn, rDataRangeIn.ulNumRows);
      }
      if(sts == 0)
      {
         /* determine the results of the data point operation */
         sts = EssGGetDataPointResults(hGrid, &ulMembers,
               &ppszMembers, &usState);
      }

      if(!sts && ulMembers)
      {
         printf("\nMembers:");
           for (i = 0; i<ulMembers; i++)
         printf("\n\t%s", ppszMembers[i]);

         EssGFreeMemberInfo(hGrid, ulMembers, ppszMembers);
      }
      if(!sts)
      {
         EssGEndOperation(hGrid, 0);
         EssGDisconnect(hGrid, 0);
      }
    }

See Also

Using the Grid API Functions
Grid API Structures