gtpc2mf5C/C++ Language Support User's Guide

TO2_createCursor-Create a Nonlocking Cursor

This function creates a nonlocking cursor for the specified collection. This type of cursor is sometimes referred to as a dirty-read cursor because no locking is involved. All applications are responsible for managing concurrent updates.

Format

#include <c$to2.h>
long  TO2_createCursor (const TO2_PID_PTR pid_ptr,
                              TO2_ENV_PTR env_ptr,
                              TO2_PID_PTR cursorPidPtr);

pid_ptr
The pointer to the persistent identifier (PID) of the collection that will be accessed.

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

cursorPidPtr
The pointer to where the PID of the cursor collection that is being created will be returned. The cursor is a temporary collection that is allocated only for the life of the entry control block (ECB) that creates it.

Normal Return

The normal return is a positive value.

Error Return

An error return is indicated by a zero. When zero 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_ENV

TO2_ERROR_METHOD

TO2_ERROR_PID

TO2_ERROR_REREAD

TO2_ERROR_ZERO_PID

Programming Considerations

Examples

The following example creates a nonlocking cursor.

#include <c$to2.h>             /* Needed for TO2 API Functions     */
#include <stdio.h>             /* APIs for standard I/O functions  */
 
TO2_PID       collect;         /* PID of the collection object     */
TO2_ENV_PTR   env_ptr;         /* Pointer to TO2 environment       */
TO2_PID       cursor;          /* PID of the cursor object         */
TO2_ERR_CODE  err_code;        /* TO2 error code value

  ·
  ·
  ·
/*******************************************************************/ /* Place a dirty read cursor on the temporary collection. */ /*******************************************************************/ if (TO2_createCursor(&collect, env_ptr, &cursor) == TO2_ERROR) { printf("TO2_createCursor failed!\n"); process_error(env_ptr); return(0); } else printf("TO2_createCursor successful!\n"); err_code = TO2_first(&cursor, env_ptr);
  ·
  ·
  ·
err_code = TO2_deleteCursor(&cursor, env_ptr);

Related Information