sqlstm.sqharc What is it? And what does it do? It keeps getting corrupted on me.
Date: Thu, 31 Jan 2008 09:20:18 -0800 (PST)
Message-ID: <eea63b26-e63c-4f5e-a6a4-a1fbd949e736@h11g2000prf.googlegroups.com>
This is generated by a Pro*C compiler running on an AIX box.
It usually contains the proper data, but every once in a while, and
only on 2 certain record types, it gets populated w/ blanks. If I
process those record types separately, then there's no problem w/ any
of the record types (there are 7 of them for the record).
So, what is sqharc, and how does it get populated? The pre-compiler
generated code doesn't populate it anywhere. I've searched online, but
the only hits I get are copies of code from people asking for help w/
problems.
As for documentation, I haven't found any that help. I've searched
both IBM and Oracle sites. Nada e niente.
I copied the code below, but it's all generated by the pre-compiler, and the original is very basic - initialize the necessary fields and do a SELECT to return 1 row.
Can anybody help?
Regards
Tom
good value --
populated sqpind w/ sqindv - 0 populated sqpins w/ sqinds - 0 populated sqparm w/ sqharm - 0
getting sqharc - 9001000a0059bf0
populated sqparc w/ sqharc - 9001000a0059bf0
bad value --
populated sqpind w/ sqindv - 0 populated sqpins w/ sqinds - 0 populated sqparm w/ sqharm - 0
getting sqharc - 2020202020202020
populated sqparc w/ sqharc - 2020202020202020
Here's the original code, the generated code is below --
init();
sprintf(tmpSeqno, "%06d", numSeqno); strncpy(tmpConnectionid,
retransmissionrequestStruct.cFromConnectionID, sizeof(retransmissionrequestStruct.cFromConnectionID));
string stringCmd("SELECT NVL(OUT_EVENT_ID,
0),NVL(TO_CHAR(BUS_DATE,'DD-MON-YYYY'),' '),NVL(TO_CHAR(TIME_ON_OUTEVENT,'DD-MON-YYYY HH24:MI:SS'),' '),NVL(TO_CHAR(TIME_OFF_OUTEVENT
,'DD-MON-YYYY HH24:MI:SS'),' '),NVL(AS_IS_ID,
0),NVL(TO_CHAR(T1_TIME,'DD-MON-YYYY HH24:MI:SS'),' '),NVL(TO_CHAR(T1_5_TIME,'DD-MON-YYYY HH24:MI:SS'),' '),NVL(TO_CHAR(T2_TIME,'DD-MON- YYYY HH24:MI:SS'),' '),NVL(TO_CHAR(T3_TIME,'DD-MON-YYYY HH24:MI:SS'),''),NVL(TO_CHAR(T4_TIME,'DD-MON-YYYY HH24:MI:SS'),' '),NVL(TO_CHAR(T5_TIME,'DD-MON-YYYY HH24:MI:SS'),' '),NVL( TO_CHAR(T6_TIME,'DD-MON-YYYY HH24:MI:SS'),' '),NVL(MESSAGE_ID,'
'),NVL(MESSAGE_TYPE,' '),NVL(OUT_SEQ_NO,' '),NVL(OUT_VERSION_NO,' '),NVL(SUBSCRIBER_ID,' '),NVL(OUT_CONNECTION_ID,' '),NVL(OUT_ACCOUNT_ID,' '),NVL(STATUS_IND,' '),NVL(TRAILING_OUT_MSG_DATA,' '),NVL(REJECT_CODE,' ')"); stringCmd.append(whereClause1); stringCmd.append(tmpSeqno); stringCmd.append(whereClause2); stringCmd.append(tmpConnectionid); stringCmd.append(whereClause3); stringCmd.copy(cmd,stringCmd.size()); EXEC SQL EXECUTE BEGIN EXECUTE IMMEDIATE :cmd INTO :sqliOutEventKey, :sqlcBusinessDate, :sqlcTimeOnOutEvent, :sqlcTimeOffOutEvent, :sqliAsIsKey,
:sqlcT1,
:sqlcT1_5,
:sqlcT2,
:sqlcT3,
:sqlcT4,
:sqlcT5,
:sqlcT6,
:sqlcMsgID,
:sqlcMsgType,
:sqlcMsgSeqno,
:sqlcVersion,
:sqlcSubscriberID,
:sqlcConnectionID,
:sqlcAccountID,
:sqlcStatus,
:sqlcOutTrailingMsgData,
:sqlcErrorCode;
END; END-EXEC;
Here's the generated code --
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12; sqlstm.arrsiz = 23; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "begin EXECUTE IMMEDIATE :cmdINTO :sqliOutEventKey , :sqlc\
BusinessDate , :sqlcTimeOnOutEvent , :sqlcTimeOffOutEvent , :sqliAsIsKey , :sq \
lcT1 , :sqlcT1_5 , :sqlcT2 , :sqlcT3 , :sqlcT4 , :sqlcT5 , :sqlcT6 , :sqlcMsgI \
D , :sqlcMsgType , :sqlcMsgSeqno , :sqlcVersion , :sqlcSubscriberID , :sqlcCon \
nectionID , :sqlcAccountID , :sqlcStatus , :sqlcOutTrailingMsgData , :sqlcErro \
rCode ; END ;";
sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )5; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int )0; sqlstm.sqhstv[0] = (unsigned char *)cmd; sqlstm.sqhstl[0] = (unsigned long )4096; sqlstm.sqhsts[0] = ( int )0; sqlstm.sqindv[0] = ( short *)0; sqlstm.sqinds[0] = ( int )0; sqlstm.sqharm[0] = (unsigned long )0; sqlstm.sqadto[0] = (unsigned short )0; sqlstm.sqtdso[0] = (unsigned short )0; sqlstm.sqhstv[1] = (unsigned char *)&sqliOutEventKey; sqlstm.sqhstl[1] = (unsigned long )sizeof(long); sqlstm.sqhsts[1] = ( int )0; sqlstm.sqindv[1] = ( short *)0; sqlstm.sqinds[1] = ( int )0; sqlstm.sqharm[1] = (unsigned long )0; sqlstm.sqadto[1] = (unsigned short )0; sqlstm.sqtdso[1] = (unsigned short )0; sqlstm.sqhstv[2] = (unsigned char *)sqlcBusinessDate; sqlstm.sqhstl[2] = (unsigned long )32; sqlstm.sqhsts[2] = ( int )0; sqlstm.sqindv[2] = ( short *)0; sqlstm.sqinds[2] = ( int )0; sqlstm.sqharm[2] = (unsigned long )0; sqlstm.sqadto[2] = (unsigned short )0; sqlstm.sqtdso[2] = (unsigned short )0; sqlstm.sqhstv[3] = (unsigned char *)sqlcTimeOnOutEvent; sqlstm.sqhstl[3] = (unsigned long )32; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( short *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned long )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = (unsigned char *)sqlcTimeOffOutEvent; sqlstm.sqhstl[4] = (unsigned long )32; sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( short *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned long )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = (unsigned char *)&sqliAsIsKey; sqlstm.sqhstl[5] = (unsigned long )sizeof(long); sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( short *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned long )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = (unsigned char *)sqlcT1; sqlstm.sqhstl[6] = (unsigned long )32; sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( short *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned long )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = (unsigned char *)sqlcT1_5; sqlstm.sqhstl[7] = (unsigned long )32; sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( short *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned long )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (unsigned short )0; sqlstm.sqhstv[8] = (unsigned char *)sqlcT2; sqlstm.sqhstl[8] = (unsigned long )32; sqlstm.sqhsts[8] = ( int )0; sqlstm.sqindv[8] = ( short *)0; sqlstm.sqinds[8] = ( int )0; sqlstm.sqharm[8] = (unsigned long )0; sqlstm.sqadto[8] = (unsigned short )0; sqlstm.sqtdso[8] = (unsigned short )0; sqlstm.sqhstv[9] = (unsigned char *)sqlcT3; sqlstm.sqhstl[9] = (unsigned long )32; sqlstm.sqhsts[9] = ( int )0; sqlstm.sqindv[9] = ( short *)0; sqlstm.sqinds[9] = ( int )0; sqlstm.sqharm[9] = (unsigned long )0; sqlstm.sqadto[9] = (unsigned short )0; sqlstm.sqtdso[9] = (unsigned short )0; sqlstm.sqhstv[10] = (unsigned char *)sqlcT4; sqlstm.sqhstl[10] = (unsigned long )32; sqlstm.sqhsts[10] = ( int )0; sqlstm.sqindv[10] = ( short *)0; sqlstm.sqinds[10] = ( int )0; sqlstm.sqharm[10] = (unsigned long )0; sqlstm.sqadto[10] = (unsigned short )0; sqlstm.sqtdso[10] = (unsigned short )0; sqlstm.sqhstv[11] = (unsigned char *)sqlcT5; sqlstm.sqhstl[11] = (unsigned long )32; sqlstm.sqhsts[11] = ( int )0; sqlstm.sqindv[11] = ( short *)0; sqlstm.sqinds[11] = ( int )0; sqlstm.sqharm[11] = (unsigned long )0; sqlstm.sqadto[11] = (unsigned short )0; sqlstm.sqtdso[11] = (unsigned short )0; sqlstm.sqhstv[12] = (unsigned char *)sqlcT6; sqlstm.sqhstl[12] = (unsigned long )32; sqlstm.sqhsts[12] = ( int )0; sqlstm.sqindv[12] = ( short *)0; sqlstm.sqinds[12] = ( int )0; sqlstm.sqharm[12] = (unsigned long )0; sqlstm.sqadto[12] = (unsigned short )0; sqlstm.sqtdso[12] = (unsigned short )0; sqlstm.sqhstv[13] = (unsigned char *)sqlcMsgID; sqlstm.sqhstl[13] = (unsigned long )15; sqlstm.sqhsts[13] = ( int )0; sqlstm.sqindv[13] = ( short *)0; sqlstm.sqinds[13] = ( int )0; sqlstm.sqharm[13] = (unsigned long )0; sqlstm.sqadto[13] = (unsigned short )0; sqlstm.sqtdso[13] = (unsigned short )0; sqlstm.sqhstv[14] = (unsigned char *)sqlcMsgType; sqlstm.sqhstl[14] = (unsigned long )2; sqlstm.sqhsts[14] = ( int )0; sqlstm.sqindv[14] = ( short *)0; sqlstm.sqinds[14] = ( int )0; sqlstm.sqharm[14] = (unsigned long )0; sqlstm.sqadto[14] = (unsigned short )0; sqlstm.sqtdso[14] = (unsigned short )0; sqlstm.sqhstv[15] = (unsigned char *)sqlcMsgSeqno; sqlstm.sqhstl[15] = (unsigned long )6; sqlstm.sqhsts[15] = ( int )0; sqlstm.sqindv[15] = ( short *)0; sqlstm.sqinds[15] = ( int )0; sqlstm.sqharm[15] = (unsigned long )0; sqlstm.sqadto[15] = (unsigned short )0; sqlstm.sqtdso[15] = (unsigned short )0; sqlstm.sqhstv[16] = (unsigned char *)sqlcVersion; sqlstm.sqhstl[16] = (unsigned long )3; sqlstm.sqhsts[16] = ( int )0; sqlstm.sqindv[16] = ( short *)0; sqlstm.sqinds[16] = ( int )0; sqlstm.sqharm[16] = (unsigned long )0; sqlstm.sqadto[16] = (unsigned short )0; sqlstm.sqtdso[16] = (unsigned short )0; sqlstm.sqhstv[17] = (unsigned char *)sqlcSubscriberID; sqlstm.sqhstl[17] = (unsigned long )4; sqlstm.sqhsts[17] = ( int )0; sqlstm.sqindv[17] = ( short *)0; sqlstm.sqinds[17] = ( int )0; sqlstm.sqharm[17] = (unsigned long )0; sqlstm.sqadto[17] = (unsigned short )0; sqlstm.sqtdso[17] = (unsigned short )0; sqlstm.sqhstv[18] = (unsigned char *)sqlcConnectionID; sqlstm.sqhstl[18] = (unsigned long )4; sqlstm.sqhsts[18] = ( int )0; sqlstm.sqindv[18] = ( short *)0; sqlstm.sqinds[18] = ( int )0; sqlstm.sqharm[18] = (unsigned long )0; sqlstm.sqadto[18] = (unsigned short )0; sqlstm.sqtdso[18] = (unsigned short )0; sqlstm.sqhstv[19] = (unsigned char *)sqlcAccountID; sqlstm.sqhstl[19] = (unsigned long )4; sqlstm.sqhsts[19] = ( int )0; sqlstm.sqindv[19] = ( short *)0; sqlstm.sqinds[19] = ( int )0; sqlstm.sqharm[19] = (unsigned long )0; sqlstm.sqadto[19] = (unsigned short )0; sqlstm.sqtdso[19] = (unsigned short )0; sqlstm.sqhstv[20] = (unsigned char *)sqlcStatus; sqlstm.sqhstl[20] = (unsigned long )1; sqlstm.sqhsts[20] = ( int )0; sqlstm.sqindv[20] = ( short *)0; sqlstm.sqinds[20] = ( int )0; sqlstm.sqharm[20] = (unsigned long )0; sqlstm.sqadto[20] = (unsigned short )0; sqlstm.sqtdso[20] = (unsigned short )0; sqlstm.sqhstv[21] = (unsigned char *)sqlcOutTrailingMsgData; sqlstm.sqhstl[21] = (unsigned long )256; sqlstm.sqhsts[21] = ( int )0; sqlstm.sqindv[21] = ( short *)0; sqlstm.sqinds[21] = ( int )0; sqlstm.sqharm[21] = (unsigned long )0; sqlstm.sqadto[21] = (unsigned short )0; sqlstm.sqtdso[21] = (unsigned short )0; sqlstm.sqhstv[22] = (unsigned char *)sqlcErrorCode; sqlstm.sqhstl[22] = (unsigned long )4; sqlstm.sqhsts[22] = ( int )0; sqlstm.sqindv[22] = ( short *)0; sqlstm.sqinds[22] = ( int )0; sqlstm.sqharm[22] = (unsigned long )0; sqlstm.sqadto[22] = (unsigned short )0; sqlstm.sqtdso[22] = (unsigned short )0; sqlstm.sqphsv = sqlstm.sqhstv; sqlstm.sqphsl = sqlstm.sqhstl; sqlstm.sqphss = sqlstm.sqhsts; sqlstm.sqpind = sqlstm.sqindv; sqlstm.sqpins = sqlstm.sqinds; sqlstm.sqparm = sqlstm.sqharm; sqlstm.sqparc = sqlstm.sqharc; sqlstm.sqpadto = sqlstm.sqadto; sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); Received on Thu Jan 31 2008 - 11:20:18 CST