gtpc2mf0C/C++ Language Support User's Guide

TO2_atCursor-Return the Element Pointed to by the Cursor

This function returns the element currently pointed to by the cursor. If the cursor is pointing one position beyond the last element of the collection, a TO2_ERROR_EODAD error code will be returned.

Note:
For array and binary large object (BLOB) collections, the cursor can move more than one position past the last element. Because the cursor position for these two collections would still be valid, the TO2_atCursor function returns a TO2_ERROR_EODAD error code.

Format

#include <c$to2.h>
TO2_BUF_PTR TO2_atCursor (const TO2_PID_PTR cursorPidPtr,
                                TO2_ENV_PTR env_ptr);

cursorPidPtr
The pointer to the cursor persistent identifier (PID) created by one of the TPF collection support (TPFCS) create cursor application programming interfaces (APIs).

env_ptr
The pointer to the environment as returned by the TO2_createEnv function.

Normal Return

The normal return is a pointer (TO2_BUF_PTR) to a structure (buffer) of type TO2_BUF_HDR (see Type Definitions).

Error Return

An error return is indicated by NULL. When NULL is returned, use the TO2_getErrorCode function to determine the specific error code. For more information, see Error Handling.

The following error codes are common for this function:

TO2_ERROR_CURSOR

TO2_ERROR_EMPTY

TO2_ERROR_ENV

TO2_ERROR_EODAD

TO2_ERROR_METHOD

TO2_ERROR_PID

TO2_ERROR_ZERO_PID

Programming Considerations

Examples

The following example reads the item to which the cursor is currently pointing.

#include <c$to2.h>                /* Needed for TO2 API Functions     */
#include <stdio.h>                /* APIs for standard I/O functions  */
 
struct person_record
{
  char              name[20];
  char              address[60];
};
typedef struct person_record PERSON_RECORD;
 
TO2_PID             cursor;       /* PID of the cursor                */
TO2_ENV_PTR         env_ptr;      /* Pointer to TO2 environment       */
TO2_BUF_PTR         buffer_ptr;   /* Pointer to element buffer        */
PERSON_RECORD      *person_ptr;   /* Pointer to element data          */
TO2_ERR_CODE        err_code;     /* TO2 error code value             */

  ·
  ·
  ·
/**********************************************************************/ /* Read the item that the cursor is currently pointing to. */ /**********************************************************************/ if ((buffer_ptr = TO2_atCursor(&cursor, env_ptr)) == NULL) { err_code = TO2_getErrorCode(env_ptr); if (err_code != TO2_ERROR_EODAD) { printf("TO2_atCursor failed!\n"); process_error(env_ptr); } else printf("Cursor is at the end of the collection!\n"); return(0); } else { person_ptr = (PERSON_RECORD *) buffer_ptr->data; printf("TO2_atCursor successful!\n"); }
  ·
  ·
  ·
free(buffer_ptr);

Related Information