Oracle/C++ stored procedure call

From: Robert Thompson <bobts_at_ix.netcom.com>
Date: 1996/06/24
Message-ID: <4qmu2j$j16_at_sjx-ixn6.ix.netcom.com>#1/1


I am having problems calling an Oracle stored procedure from C++ using ODBC. The code is below.

Any help would be great. bobts_at_ix.netcom.com     

void CNoteEngine::SendMessage(CMessage* aMessage) {         

        // hard coded : build column array for generic
#define SIZEID 80
#define SIZEMESSAGE 1000

	SWORD  returnCode;
	SDWORD bindReturnCode;
	SDWORD bindFromId;
	SDWORD bindToId;
	SDWORD bindMessageText;
	UCHAR  bufferFromId[SIZEID];
	UCHAR  bufferToId[SIZEID];
	UCHAR  bufferMessageText[SIZEMESSAGE];
    const char *pFromId;
	const char *pToId;
	const char *pMessageText;
	RETCODE returnVal;
	char sqlString[500];
	unsigned char *test;

	memset(sqlString,0,sizeof(sqlString));

	retcode = SQLAllocStmt(hdbc, &hstmt);

	if (retcode == SQL_SUCCESS) 
	{

		SQLBindParameter(hstmt, 1, SQL_PARAM_OUTPUT, SQL_C_SLONG,
SQL_INTEGER,
			0,0, &returnCode,0, &bindReturnCode);
		SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR,
SQL_CHAR,
			SIZEID,0, bufferFromId,0, &bindFromId);
		SQLBindParameter(hstmt, 3, SQL_PARAM_INPUT, SQL_C_CHAR,
SQL_CHAR,
			SIZEID,0, bufferToId,0, &bindToId);
		SQLBindParameter(hstmt, 4, SQL_PARAM_INPUT, SQL_C_CHAR,
SQL_CHAR,
			SIZEMESSAGE,0, bufferMessageText,0,

&bindMessageText);                         
		pFromId = ((LPCTSTR) aMessage->FromId());
		memset(bufferFromId,0,sizeof(bufferFromId));
		memcpy(bufferFromId,pFromId,strlen(pFromId));
		
		
		pToId = ((LPCTSTR) aMessage->ToId());
		memset(bufferToId,0,sizeof(bufferToId));
		memcpy(bufferToId,pToId,strlen(pToId));
		
		pMessageText = ((LPCTSTR) aMessage->MessageText());
		memset(bufferMessageText,0,sizeof(bufferMessageText));
		memcpy(bufferMessageText,pMessageText,strlen(pMessageText)
;
		strcpy(sqlString,"{?=call MESSAGE_INS(?,?,?)}");
		retcode = SQLExecDirect(hstmt, (UCHAR*) sqlString,
SQL_NTS);         }

        SQLFreeStmt(hstmt, SQL_DROP); Received on Mon Jun 24 1996 - 00:00:00 CEST

Original text of this message