#include <hmq.h> #include <hmqHelper.h> MQEINT32 MQeFieldsPutFields( MQEHSESS hSess, MQEHFIELDS hFlds1, MQECHAR * pName, MQEHFIELDS hFlds2, MQEINT32 * pCompCode, MQEINT32 * pReason)
#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);