gtpc2mfuC/C++ Language Support User's Guide

TO2_setKeyPath-Set a Cursor to Use a Specific Key Path

This function allows an application program to specify the key path a cursor will use to access a collection. When a cursor is created, the primary key path of the collection is used by default for searching and accessing data. This function allows an application program to override the default setting or any previous TO2_setKeyPath calls that were issued for this cursor.

Note:
This function does not support all collections. See Table 48 for collections that are supported for this function.

Format

#include <c$to2.h>
long  TO2_setKeyPath (const TO2_PID_PTR  cursorPid_ptr,
                            TO2_ENV_PTR  env_ptr,
                      const char        *name);

cursorPid_ptr
The pointer to the persistent identifier (PID) assigned to the target cursor.

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

name
The pointer to a string that is the name of the key path that will be used by the cursor for accessing the collection.

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_KEYPATH_BUILD_ACTIVE

TO2_ERROR_LOCATOR_NOT_FOUND

TO2_ERROR_METHOD

TO2_ERROR_NOT_INIT

TO2_ERROR_PID

TO2_ERROR_ZERO_PID

Programming Considerations

Examples

The following example sets the cursor to use the specified key path.

#include <c$to2.h>                /* TO2 API function prototypes       */
#include <stdio.h>                /* APIs for standard I/O functions   */
 
TO2_ENV_PTR   env_ptr;            /* Pointer to TO2 Environment        */
TO2_PID       keysetCursor;
char          name="fieldA";      /* name of key path to remove        */

  ·
  ·
  ·
if (TO2_setKeyPath(&keysetCursor, env_ptr, name) == TO2_ERROR) { printf("TO2_setKeyPath failed!\n"); process_error(env_ptr); } else { printf("TO2_setKeyPath was successful!\n"); }
  ·
  ·
  ·
/***********************************************************************/ /* The application must issue a positioning request such as TO2_first. */ /***********************************************************************/

Related Information