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
&bindMessageText);
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