sqlstm.sqharc What is it? And what does it do? It keeps getting corrupted on me.

From: <44dd44_at_gmail.com>
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 :cmd
INTO :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

Original text of this message