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
