⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcs_snd_yx_p.c

📁 unix 下用pro*c tuxedo 开发的东西
💻 C
📖 第 1 页 / 共 2 页
字号:
    		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 + -