📄 pcs_snd_yx_p.c
字号:
exit(0);
}
/* EXEC SQL SELECT bsbh INTO :snd_city FROM T_BSBH; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 1;
sqlstm.stmt = "select bsbh into :b0 from T_BSBH ";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )16;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)snd_city;
sqlstm.sqhstl[0] = (unsigned int )3;
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( snd_city[0]=='\0'||snd_city[1]=='\0' )
{
ProcessError(LOG_ERROR,"PCS_Snd_YX_P: bsbh in t_bsbh is NULL",END);
exit(0);
}
else
snd_city[2]='\0';
iTime=GetTimeInterval("PCS_SND_YX_P");
begin:
i=0;
ERROR=0;
datatype = SJFL_YX;
status = FSRZ_WAITFOR_SND;
/* EXEC SQL SELECT COUNT(*) INTO :coun FROM t_fsrz
WHERE sjfl=:datatype AND sjzt=:status; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "select count(*) into :b0 from t_fsrz where (sjfl=:b\
1 and sjzt=:b2)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )34;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&coun;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)&datatype;
sqlstm.sqhstl[1] = (unsigned int )1;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqhstv[2] = (unsigned char *)&status;
sqlstm.sqhstl[2] = (unsigned int )1;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqharm[2] = (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 (coun == 0)
{
goto End;
}
/* EXEC SQL DECLARE c CURSOR FOR
SELECT fsxh FROM t_fsrz
WHERE sjfl = :datatype AND sjzt = :status; */
flag=MQBKInit("YX");
if( flag<0 )
{
ProcessError(LOG_ERROR,"PCS_Snd_YX_P: error when init mq yx",END);
goto End;
}
/* Get message length and memory of m_header */
len_msg = LEN_KEY + sizeof(snd_city)*2 + sizeof(fi_no) +sizeof(subtype)
+ ZH_LEN*2 + LEN_YX_REC + 10;
if ((mheader = (char *)malloc(len_msg+MID_LEN)) == NULL)
{
ProcessError(LOG_ERROR,"PCS_Snd_YX_P: error there is no space in memory",END);
goto End;
}
/* EXEC SQL OPEN c; */
{
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;
sqlstm.sqhstv[0] = (unsigned char *)&datatype;
sqlstm.sqhstl[0] = (unsigned int )1;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)&status;
sqlstm.sqhstl[1] = (unsigned int )1;
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);
}
while ( ++i <= coun )
{
/* EXEC SQL WHENEVER NOT FOUND DO break; */
/* EXEC SQL FETCH c INTO : serial_no; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )82;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&serial_no;
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 == 1403) break;
}
status = FSRZ_SENDED;
/* Update T_FSRZ status to SENDED */
UpdateSndLogStatus(serial_no,status);
status = HZ_SENDED;
flag=PcsSndYX2(serial_no,len_msg);
if( flag!=0 )
{
sprintf(produce_err_str,"%10d",serial_no);
ProcessError(LOG_ERROR,"PCS_Snd_YX_P: error when send yxsj to queue fsxh is: ",produce_err_str);
/* EXEC SQL ROLLBACK WORK; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )100;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
continue;
}
/* Delete these T_ZCFSSJ records */
/* EXEC SQL DELETE FROM t_zcfssj WHERE fsxh = :serial_no; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "delete from t_zcfssj where fsxh=:b0";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )114;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&serial_no;
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 == 1403) break;
}
/* EXEC SQL COMMIT WORK; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )132;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
}
/* EXEC SQL CLOSE c; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )146;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
free(mheader);
End:
flag=MQBKClear();
if( flag<0 )
{
ProcessError(LOG_ERROR,"PCS_Snd_YX_P: error when mq bk clear",END);
}
#ifdef DEBUG
exit(0);
#endif
sleep(iTime);
goto begin;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -