gtpc2mgjC/C++ Language Support User's Guide

TO2_atBrowseKeyPut-Replace the Element Using the Specified Key from the Browser Dictionary

This function locates the entry represented by the specified key and replaces its contents with the passed data values. The passed key string is assumed to be 64 bytes long.

Format

#include <c$to2.h>
long TO2_atBrowseKeyPut (      TO2_ENV_PTR  env_ptr,
                         const void        *key,
                         const long        *dataLength,
                         const void        *data,
                         const long        *updateSeqCtr);

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

key
The pointer to the EBCDIC key to use to locate the dictionary entry. The passed key string is assumed to be 64 bytes long.

dataLength
The pointer to the length of the data to place in the entry.

data
The pointer to the data to place in the entry.

updateSeqCtr
The pointer to an area where the update sequence counter from a TO2_atBrowseKey request has been stored. The TO2_atBrowseKey request was previously done to retrieve the data that is now being replaced. If this sequence counter value is not equal to the current update sequence counter value of the collection, the TO2_atBrowseKeyPut request will not be run.

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_DATA_LGH

TO2_ERROR_ENV

TO2_ERROR_LOCATOR_NOT_FOUND

TO2_ERROR_METHOD

TO2_ERROR_NOT_INIT

TO2_ERROR_PID

TO2_ERROR_SEQCTR

TO2_ERROR_UPDATE_NOT_ALLOWED

TO2_ERROR_ZERO_PID

Programming Considerations

A commit scope will be created for the TO2_atBrowseKeyPut function. If the request is successful, the scope will be committed. If an error occurs while processing the TO2_atBrowseKeyPut request, the scope will be rolled back.

Examples

The following example replaces the data in the dictionary with the passed data values.

#include <c$to2.h>             /* Needed for TO2 API functions    */
#include <stdio.h>             /* APIs for standard I/O functions */
#define UNDEF -1               /* Error return indication         */
 
long         err_code;
char         *key;
char         *data;
TO2_ENV_PTR  env_ptr;          /* Pointer to TO2 environment      */
long         updateSeqCtr;
long         dataLength;

  ·
  ·
  ·
err_code = TO2_atBrowseKeyPut (env_ptr, key, &dataLength, data, &updateSeqCtr); if (err_code == TO2_ERROR) { err_code = TO2_getErrorCode(env_ptr); if (err_code == TO2_ERROR_LOCATOR_NOT_FOUND) return UNDEF; { printf("TO2_atBrowseKeyPut failed!\n"); process_error(env_ptr); } else { printf("TO2_atBrowseKeyPut successful!\n"); } }

Related Information