📄 pcs_rcv_zfjb.c
字号:
int InitRcvZFJB()
{
/* 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; */
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
strcpy( userid.arr, "pcsdba" );
userid.len = strlen( userid.arr );
strcpy( password.arr, "dba" );
password.len = strlen( password.arr );
/* 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;
}
interval = GetTimeInterval("PCS_RCV_ZFJB");
return(0);
sqlerror:
/* EXEC SQL WHENEVER SQLERROR CONTINUE; */
ProcessError(LOG_ERROR, "DataBase Error:%s!", sqlca.sqlerrm.sqlerrmc );
exit(-1);
}
int ReadZFJBMsg()
{
char c_nf[4];
while(1)
{
if ( (( buf = (char *)malloc( LEN_ZFJB_BUF ))==NULL) || \
(( data_type = (char *)malloc( LEN_DATA_TYPE ))==NULL) )
{
ProcessError(LOG_ERROR,"PCS_RCV_ZFJB.X: Malloc ZFJB Buffer Error!",END);
sleep(InitInterval);
}
else
break;
}
tmp = buf;
rtn_code = MQBKReceiveSyn_Wait( &buf_length, buf, data_type );
if ( rtn_code < 0 ) /* no message arrived */
{
free( tmp );
free( data_type );
return(-2);
}
else
{
#ifdef DEBUG
printf("recv code and data_type is %d %s\n",rtn_code,data_type);
#endif
if (( data_type[0] == 'Z' ) && ( data_type[1]=='F' ) && \
( data_type[2] == 'J' ))
{
strncpy( c_fsxh, buf, 10);
c_fsxh[10]='\0';
fsxh = atoi( c_fsxh);
buf = buf + 10;
strncpy( fssjbh, buf, 2);
fssjbh[2]='\0';
buf = buf + 2;
strncpy( jssjbh,buf,2);
jssjbh[2]='\0';
buf = buf + 2;
strncpy( c_nf,buf,4);
c_nf[4]='\0';
nf = atoi(c_nf);
buf = buf + 4;
#ifdef DEBUG
printf("fsxh is %s \n",c_fsxh);
printf("fssjbh, jssjbh, nf is: %s,%s,%s\n",fssjbh,jssjbh,nf);
#endif
free( data_type );
}
else /* received an error message */
{
free( tmp );
free( data_type );
return(-3);
}
}
return(1);
}
int CreateRcvLogStatus()
{
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
/* EXEC SQL INSERT INTO T_JSRZ
VALUES( :fsxh, '4', '1', :fssjbh, sysdate ); */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "insert into T_JSRZ values (:b0,'4','1',:b1,sysdate )";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )42;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&fsxh;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)fssjbh;
sqlstm.sqhstl[1] = (unsigned int )3;
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 );
ProcessError(LOG_ERROR,"PCS_RCV_ZFJB.X: Running Function CreateRcvLogStatus() \
SQL Error!",END);
free( tmp );
/* EXEC SQL RollBack; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )64;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
return (-1);
}
int InsertRcvZFJB()
{
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
/*Delete the duplicate records first, the sql do nothing if no duplicate.
by Mr. zjk 2000.05.12*/
/* EXEC SQL DELETE FROM t_jszfjbnr WHERE jsxh IN (\
SELECT jsxh FROM t_jszfjb WHERE sjbh=:fssjbh and nf=:nf); */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "delete from t_jszfjbnr where jsxh in (select jsxh from t\
_jszfjb where (sjbh=:b0 and nf=:b1))";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )78;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)fssjbh;
sqlstm.sqhstl[0] = (unsigned int )3;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)&nf;
sqlstm.sqhstl[1] = (unsigned int )4;
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;
}
/* EXEC SQL DELETE FROM t_jszfjb WHERE sjbh=:fssjbh and nf=:nf; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "delete from t_jszfjb where (sjbh=:b0 and nf=:b1)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )100;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)fssjbh;
sqlstm.sqhstl[0] = (unsigned int )3;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)&nf;
sqlstm.sqhstl[1] = (unsigned int )4;
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;
}
/* This paragraph was cut from function: InsertRcvZFJBNR(), by Mr. zjk 2000.05.12
EXEC SQL select count(*) into :count_zfj from t_jszfjb where sjbh=:fssjbh and nf=:nf;
if ( count_zfj > 0 )
{
EXEC SQL delete t_jszfjbnr where sjbh=:fssjbh and t_jszfjb.nf=:nf and \
t_jszfjb.jsxh=t_jszfjbnr.jsxh and t_jszfjb.sjbh=t_jszfjbnr.sjbh;
EXEC SQL delete t_jszfjb where sjbh=:fssjbh and nf=:nf;
EXEC SQL COMMIT WORK;
}
*/
/* EXEC SQL INSERT INTO T_JSZFJB VALUES( :nf, :fssjbh, :fsxh ); */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.stmt = "insert into T_JSZFJB values (:b0,:b1,:b2)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )122;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&nf;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)fssjbh;
sqlstm.sqhstl[1] = (unsigned int )3;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqhstv[2] = (unsigned char *)&fsxh;
sqlstm.sqhstl[2] = (unsigned int )4;
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 (sqlca.sqlcode < 0) goto sqlerror;
}
return(1);
sqlerror:
/* EXEC SQL WHENEVER SQLERROR CONTINUE; */
ProcessError(LOG_ERROR, "DataBase Error:%s!", sqlca.sqlerrm.sqlerrmc );
ProcessError(LOG_ERROR,"PCS_RCV_ZFJB.X: Running Function InsertRcvZFJB() \
SQL Error!",END);
free( tmp );
/* EXEC SQL RollBack; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 3;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )148;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
return (-1);
}
int InsertRcvZFJBNR()
{
char zfjbh[9], zfjmc[17];
int count_zfj;
long ll_zfjxh; /* by Mr. zjk 2000.05.11 */
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
ll_zfjxh = 1; /* by Mr. zjk 2000.05.11 */
while ( *buf != '\0' )
{
strncpy( zfjbh, buf, 8);
zfjbh[8]='\0';
buf = buf+8;
strncpy( zfjmc, buf, 16);
zfjmc[16]='\0';
buf = buf+16;
/* EXEC SQL INSERT INTO T_JSZFJBNR
VALUES (:fssjbh, rtrim(:zfjbh), rtrim(:zfjmc), :fsxh, :ll_zfjxh ); */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 5;
sqlstm.stmt = "insert into T_JSZFJBNR values (:b0,rtrim(:b1),rtrim(:b2)\
,:b3,:b4)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )162;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)fssjbh;
sqlstm.sqhstl[0] = (unsigned int )3;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)zfjbh;
sqlstm.sqhstl[1] = (unsigned int )9;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqhstv[2] = (unsigned char *)zfjmc;
sqlstm.sqhstl[2] = (unsigned int )17;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqhstv[3] = (unsigned char *)&fsxh;
sqlstm.sqhstl[3] = (unsigned int )4;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqhstv[4] = (unsigned char *)&ll_zfjxh;
sqlstm.sqhstl[4] = (unsigned int )4;
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqharm[4] = (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;
}
/* by Mr. zjk 2000.05.11 */
/* EXEC SQL COMMIT WORK; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 5;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )196;
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;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -