📄 myapi.c
字号:
sleep(DB_Interval);
if (count_init > 5)
{
ProcessError(LOG_NORMAL, "Could not connect to the database, so exit now!",END);
MQBKClear();
EXEC SQL ROLLBACK RELEASE;
exit(1);
}
count_init++;
InitSndGHP();
return;
}
sprintf(ErrMsg, "%ld", key);
ProcessError(LOG_ERROR,"Error occured in record which fsxh is %s!", ErrMsg);
return;
}
*/
int InitSndGHP()
{
/* EXEC SQL BEGIN DECLARE SECTION; */
/* VARCHAR userid[20]; */
struct { unsigned short len; unsigned char arr[20]; } userid;
/* VARCHAR password[20]; */
struct { unsigned short len; unsigned char arr[20]; } password;
/* EXEC SQL END DECLARE SECTION; */
/*********************************
| Get Process waiting interval |
**********************************/
interval = GetTimeInterval("PCS_SND_GH_P");
/*****************************
| Connect to DataBase |
*****************************/
strcpy( userid.arr, "pcsdba" );
userid.len = strlen( userid.arr );
strcpy( password.arr, "dba" );
password.len = strlen( password.arr );
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
/* EXEC SQL CONNECT :userid IDENTIFIED BY :password; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )10;
sqlstm.offset = (unsigned int )16;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&userid;
sqlstm.sqhstl[0] = (unsigned int )22;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)&password;
sqlstm.sqhstl[1] = (unsigned int )22;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto sqlerror;
}
return(1);
sqlerror:
/* EXEC SQL WHENEVER SQLERROR CONTINUE; */
ProcessError(LOG_ERROR, "DataBase Error:%s!", sqlca.sqlerrm.sqlerrmc );
exit(-1);
}
int PCSSndGHP()
{
int count_rec,i;
/* long key;*/
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
while (1)
{
/* EXEC SQL SELECT count(*) INTO :count_rec FROM T_FSRZ
WHERE sjfl = '5' AND sjzt = '2'; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "select count(*) into :b0 from T_FSRZ where (sjfl='5' a\
nd sjzt='2')";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )42;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&count_rec;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto sqlerror;
}
if ( count_rec == 0 ) sleep( interval );
else
{
/* EXEC SQL DECLARE gh_cursor CURSOR FOR
SELECT FSXH FROM T_FSRZ
WHERE sjfl = '5' AND sjzt = '2'; */
/* EXEC SQL OPEN gh_cursor; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = sq0004;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )60;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto sqlerror;
}
for (i=1; i <= count_rec; i++)
{
/* EXEC SQL FETCH gh_cursor INTO :key; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )74;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&key;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto sqlerror;
}
PCSSndGHP2(key);
rtn_code = MQBKSend_Syn(strlen(buf_msg),buf_msg,00,"GH");
free( buf_msg );
if (rtn_code <0)
{
ProcessError(LOG_ERROR,"Pcs_Snd_GH_P.x: \
Sendding GH Message Error!",END);
MQBKBack();
continue;
}
rtn_code = MQBKCmit();
if ( rtn_code < 0 )
{
ProcessError(LOG_ERROR,"Pcs_Snd_GH_P.x: Commit \
GH Message Error!",END);
MQBKBack();
continue;
}
/* EXEC SQL UPDATE t_fsrz SET sjzt='3' WHERE fsxh = :key; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "update t_fsrz set sjzt='3' where fsxh=:b0";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )92;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&key;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto sqlerror;
}
/* EXEC SQL UPDATE t_hz SET hzzt='2' WHERE fsxh = :key; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "update t_hz set hzzt='2' where fsxh=:b0";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )110;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&key;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto sqlerror;
}
} /*end of for */
/* EXEC SQL COMMIT WORK; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )128;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto sqlerror;
}
/* EXEC SQL CLOSE gh_cursor; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )142;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto sqlerror;
}
sleep( interval );
} /* end of else */
} /* end of while */
sqlerror:
/* EXEC SQL WHENEVER SQLERROR CONTINUE; */
ProcessError(LOG_ERROR, "DataBase Error:%s!", sqlca.sqlerrm.sqlerrmc );
ProcessError(LOG_ERROR,"Pcs_Snd_GH_P.x: Running Function PCSSndGHP() \
Error!",END);
/* EXEC SQL RollBack; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )156;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
return(-1);
}
int PCSSndGHP2(long key2)
{
int count_hz;
long len_buf_msg, i;
char key_s[11], jssjbh[3], fssjbh[3], ghbh[4];
/* EXEC SQL BEGIN DECLARE SECTION; */
/* VARCHAR ghnr[ LEN_GHNR+1 ]; */
struct { unsigned short len; unsigned char arr[50001]; } ghnr;
/* EXEC SQL END DECLARE SECTION; */
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
len_buf_msg = LEN_GHNR + LEN_FSXH + LEN_FSSJBH + \
LEN_JSSJBH + LEN_GHBH + LEN_GHXL + 1;
while(1)
{
if ( (buf_msg = (char *) malloc (len_buf_msg))==NULL )
{
ProcessError(LOG_ERROR,"Pcs_Snd_GH_P.x: Malloc GH Buffer \
Error!",END);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -