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

📄 myapi.c

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