gtpc2metC/C++ Language Support User's Guide

TO2_setSize-Set the Size of the BLOB

This function sets the size of an existing binary large object (BLOB). The size of the BLOB can be made either smaller or larger. If the size is made smaller, the associated backing store will be released and cannot be reclaimed at a later date. If the BLOB is made larger, all of the bytes from the old end of BLOB to the new end of BLOB will be read as zero bytes.

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

Format

#include <c$to2.h>
long  TO2_setSize  (const TO2_PID_PTR   pid_ptr,
                          TO2_ENV_PTR   env_ptr,
                    const long         *newSize);

pid_ptr
The pointer to the persistent identifier (PID) assigned to the collection.

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

newSize
A pointer to the number of bytes to set as the new size of the BLOB.

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_METHOD

TO2_ERROR_NOT_INIT

TO2_ERROR_PID

TO2_ERROR_UPDATE_NOT_ALLOWED

TO2_ERROR_ZERO_PID

Programming Considerations

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

Examples

The following example sets the size of a BLOB to be 64 bytes.

#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          blob;
 
long             size = 64;

  ·
  ·
  ·
if (TO2_setSize(&blob, env_ptr, &size) == TO2_ERROR) { printf("TO2_setSize failed!\n"); process_error(env_ptr); } else { printf("TO2_setSize successful!\n"); }

Related Information