MQeFieldsGetFields

Description
Extracts a nested MQeFields object from an MQeFields handle.

Syntax
#include <hmq.h> 
#include <hmqHelper.h> 
MQEHFIELDS MQeFieldsGetFields( MQEHSESS hSess, MQEHFIELDS hFlds, 
                MQECHAR * pName, MQEINT32 * pCompCode, 
                MQEINT32 * pReason)

Parameters

MQEHSESS hSess - input
The session handle, returned by MQeInitialize.

MQEHFIELDS hFlds - input
A handle to an MQeFields object.

MQECHAR * pName - input
A null terminated string containing the name of the field. A null or a zero length string is invalid.

MQEINT32 * pCompCode - output
MQECC_OK, MQECC_WARNING or MQECC_ERROR.

MQEINT32 * pReason - output

Return Value

MQEHFIELDS
  • Returns the field object handle of the given field.
  • On error returns MQEHANDLE_NULL.

Example
#include <hmq.h>
#include <hmqHelper.h>
static MQECHAR const * FieldsType = 
			"com.ibm.mqe.MQeFields";
const char * hello = "Hello World";
MQEHSESS  hSess;
MQEINT32  compcode;
MQEINT32  reason;
MQEHFIELDS hFlds1, hFlds2, hFlds3;
MQEBYTE * pData;
MQEINT32  rc;
 
hSess  = MQeInitialize("MyAppsName", 
									&compcode, &reason);
hFlds1 = MQeFieldsAlloc( hSess, FieldsType, 
									&compcode, &reason);
hFlds2 = MQeFieldsAlloc( hSess, FieldsType, 
									&compcode, &reason);
 
/* Put hFlds1 into hFlds2 */
rc   = MQeFieldsPut( hSess, hFlds1, "ibm", 
								MQE_TYPE_ASCII, hello, 
            				strlen(hello), 
								&compcode, &reason); 
rc   = MQeFieldsPutFields( hSess, hFlds2, 
										"ibmFields", hFlds1, 
               					&compcode, &reason);
/* hFlds1 is no longer valid */
 
/* Retrieve hFlds1 as hFlds3 from hFlds2 */
hFlds3 = MQeFieldsGetFields( hSess, hFlds2, 
										"ibmFields", 
                          	&compcode, &reason);
 
/* Extract the "ibm" field */
datalen = MQeFieldsGet( hSess, hFlds3, "ibm", 
								&datatype, 
								NULL, 0, NULL, 
            				&compcode, &reason); 
pData  = malloc(datalen+1);
datalen = MQeFieldsGet( hSess, hFlds3, "ibm", 
								&datatype, 
								pData, 0, 
								datalen, 
            				&compcode, 
								&reason); 
pData[datalen] = '\0';
printf("Field is %s\n", pData);
 
/* Free the fields resources */
MQeFieldsFree( hSess, hFlds3, 
					&compcode, &reason);
MQeFieldsFree( hSess, hFlds2, 
					&compcode, &reason);

See Also
MQeFieldsPutFields


© IBM Corporation 2002. All Rights Reserved