Chapter 5 C Routines Reference


JagSetSharedValue

Description

Set a shared variable value.

Syntax

JagStatus JagSetSharedData (
            JagSharedData * pData,
            SQLPOINTER  pValue,
            SQLINTEGER  len)

Parameters

pData

The shared variable handle.

pValue

A buffer containing the new value.

len

The size (in bytes) of the value. If the value is a null-terminated string, you must include the length of the null terminator in the length of the string.

Return Value

Return value To indicate
JAG_SUCCEED Success
JAG_FAIL Failure

Check the server's log file for more information when JagSetSharedData fails.

Usage

The JagSetSharedValue method copies a value to a specified shared variable. You must have retrieved the shared variable reference before executing this method. You must pass a pointer to the value you want to copy to the shared variable. You must specify the size of the value.

There are two possible strategies for using shared data values:

Example storing data values directly

The code below calls JagSetSharedValue to save "tombstone" as a shared data value. The len parameter is passed as 1 byte more than the string length to ensure that the null-terminator is copied:

SQLCHAR buf[20];
JagSharedData  *pData
 
strcpy(buf,  "tombstone");
retcode = JagSetSharedValue(pData,  buf, strlen(buf) + 1);

Example storing pointers to shared data

The code below allocates a SQLCHAR pointer, then calls JagSetSharedValue to save the pointer as shared data.

SQLCHAR        *ptrToData;
JagSharedData  *pData
 
ptrToData = (SQLCHAR *)malloc(20); 
strcpy(ptrToData,  "tombstone");

/* 
** Pass  the address of the pointer to save the pointer; 
** the  length of the shared data is the size of the 
** pointer
*/

retcode = JagSetSharedValue(pData, 
                            &ptrToData, sizeof(ptrToData));

Here is code to retrieve the value that was set in the example above:

SQLCHAR        *ptrToData;
JagSharedData  *pData
 SQLINTEGER     outlen;

retcode = JagGetSharedValue(pData, &ptrToData,
                            sizeof(ptrToData), &outlen);

See Also

JagGetSharedData, JagGetSharedDataByIndex, JagGetSharedValue, JagNewSharedData, JagNewSharedDataByIndex

Appendix C, "Creating C Components," in the EAServer Programmer's Guide

 


Copyright (C) 2004. Sybase Inc. All rights reserved.