안녕하세요
sql_context 사용해서 thread 사용중입니다.
Thread function 안에서 차례대로
EXEC SQL CONTEXT ALLOCATE :ctx[threadIndex];
EXEC SQL CONTEXT USE :ctx[threadIndex];
EXEC SQL COMMIT;
구문을 작성하였는데,
오류없이 .c파일로 precomplie을 잘 됩니다.
그런데 이때 생성된 .c파일을 보면
/* EXEC SQL CONTEXT ALLOCATE :ctx[threadIndex]; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )36;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)&ctx[threadIndex];
sqlstm.sqhstl[0] = (unsigned int )sizeof(void *);
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (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);
}
/* EXEC SQL CONTEXT USE :ctx[threadIndex]; */
/* EXEC SQL COMMIT; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )55;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt(&ctx[threadIndex], &sqlctx, &sqlstm, &sqlfpn);
}
로
가운데 EXEC SQL CONTEXT USE :ctx[threadIndex]; 구문은 precomplide되지 않네요
어떻게 해야 할까요? 도움 부탁드립니다. |