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

📄 pcs_rcv_zfjb.c

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