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

📄 myapi.c

📁 unix 下用pro*c tuxedo 开发的东西
💻 C
📖 第 1 页 / 共 2 页
字号:

/* Result Sets Interface */
#ifndef SQL_CRSR
#  define SQL_CRSR
  struct sql_cursor
  {
    unsigned int curocn;
    void *ptr1;
    void *ptr2;
    unsigned long magic;
  };
  typedef struct sql_cursor sql_cursor;
  typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */

/* Thread Safety */
typedef void * sql_context;
typedef void * SQL_CONTEXT;

/* File name & Package Name */
struct sqlcxp
{
  unsigned short fillen;
           char  filnam[9];
};
static struct sqlcxp sqlfpn =
{
    8,
    "myapi.pc"
};


static unsigned long sqlctx = 19907;


static struct sqlexd {
   unsigned int   sqlvsn;
   unsigned int   arrsiz;
   unsigned int   iters;
   unsigned int   offset;
   unsigned short selerr;
   unsigned short sqlety;
   unsigned int   unused;
            short *cud;
   unsigned char  *sqlest;
            char  *stmt;
   unsigned char  **sqphsv;
   unsigned int   *sqphsl;
            short **sqpind;
   unsigned int   *sqparm;
   unsigned int   **sqparc;
   unsigned char  *sqhstv[3];
   unsigned int   sqhstl[3];
            short *sqindv[3];
   unsigned int   sqharm[3];
   unsigned int   *sqharc[3];
} sqlstm = {8,3};

/* Prototypes */
extern sqlcxt (/*_ void **, unsigned long *,
                   struct sqlexd *, struct sqlcxp * _*/);
extern sqlcx2t(/*_ void **, unsigned long *,
                   struct sqlexd *, struct sqlcxp * _*/);
extern sqlbuft(/*_ void **, char * _*/);
extern sqlgs2t(/*_ void **, char * _*/);
extern sqlorat(/*_ void **, unsigned long *, void * _*/);

/* Forms Interface */
static int IAPSUCC = 0;
static int IAPFAIL = 1403;
static int IAPFTL  = 535;
extern void sqliem(/*_ char *, int * _*/);

 static char *sq0004 = 
"select FSXH  from T_FSRZ where (sjfl='4' and sjzt='2')           ";
 static char *sq0012 = 
"select zfjbh ,zfjmc  from T_FSZFJBNR where FSXH=:b0 order by zfjxh         \
   ";
typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;

/* cud (compilation unit data) array */
static short sqlcud0[] =
{8,4130,
2,0,0,1,0,0,32,37,0,0,0,0,1,0,
16,0,0,2,0,0,27,69,0,3,3,0,1,0,1,9,0,0,1,9,0,0,1,10,0,0,
42,0,0,3,68,0,4,93,0,1,0,0,1,0,2,3,0,0,
60,0,0,4,65,0,9,104,0,0,0,0,1,0,
74,0,0,4,0,0,13,109,0,1,0,0,1,0,2,3,0,0,
92,0,0,5,42,0,5,139,0,1,1,0,1,0,1,3,0,0,
110,0,0,6,40,0,5,141,0,1,1,0,1,0,1,3,0,0,
128,0,0,7,0,0,29,144,0,0,0,0,1,0,
142,0,0,4,0,0,15,145,0,0,0,0,1,0,
156,0,0,8,0,0,31,160,0,0,0,0,1,0,
170,0,0,9,48,0,4,177,0,2,1,0,1,0,2,3,0,0,1,3,0,0,
192,0,0,10,57,0,4,180,0,2,1,0,1,0,2,3,0,0,1,3,0,0,
214,0,0,11,34,0,4,203,0,1,0,0,1,0,2,97,0,0,
232,0,0,12,78,0,9,232,0,1,1,0,1,0,1,3,0,0,
250,0,0,12,0,0,13,236,0,2,0,0,1,0,2,97,0,0,2,97,0,0,
272,0,0,12,0,0,15,250,0,0,0,0,1,0,
286,0,0,13,0,0,31,259,0,0,0,0,1,0,
};


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*	File name		: myapi.pc			    		*				
*	Module ID		: MD-P17-04			    		*
*	Module Name		: 			    			*
*	Purpose			: Sub Function Used By Pcs_Snd_ZFJB_P.pc	*
*	Author          	: Liu Yan Qiu (DIMPT)		    		*
*	Date Created		: 1999/10/21			    		*
*	Version			: Version 1.0			    		*
*	Environment		: Digital Unix			    		*
*	Portability		: DEC ALPHA Server			    	*
*	Warnings		:                 			    	*
*	References		:                 			    	*
*	Calling Syntax		:                 			    	*
*	Parameters		: None            			    	*		
*	Returns			: void             			    	*
*	Calling Function	:                 			    	*
*	Called Functions	:                 			    	*
*	Datastores and usages	:               			    	*
*    		(a) Input                                      	    		*
* 	   	(b) OutPut                 			    		*       
*	Report			: None             			    	*
*	Screens			: None              		    		*
*	Messages Files		: None             			    	*
*	Change Log		:                  			    	*
*	Change No. 	Date	Author	Reason For Change		    	*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 


#include "/usr/bkfx/include/Pcs_Snd_ZFJB_P/Pcs_Snd_ZFJB_P.h"


void Free_Mem()
{ 
	ProcessError(LOG_NORMAL, "Pcs_Snd_ZFJB_P.x Is Terminated By User!",END);
 	if ( buf_msg != NULL ) free( buf_msg );
	MQBKClear();
	/* EXEC SQL RollBack RELEASE; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 0;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )2;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


	exit(0);
}


int InitSndZFJBP()
{  

 	/* 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_ZFJB_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 PCSSndZFJBP()
{  
	int 	count_rec;
	long	key;
	int	n,i;
	
   	/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */ 


   while (1)
   {
	
   	/* EXEC SQL SELECT count(*) INTO :count_rec FROM T_FSRZ 
        		WHERE sjfl = '4' AND sjzt = '2'; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "select count(*)  into :b0  from T_FSRZ where (sjfl='4' 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 zfj_cursor CURSOR FOR
                    	SELECT FSXH 
                    	FROM T_FSRZ
                    	WHERE sjfl = '4' AND sjzt = '2'; */ 

   		
           	/* EXEC SQL OPEN zfj_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 zfj_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;
}


               		
                	rtn_code = PCSSndZFJBP2(key);
                	if (rtn_code < 0)
                	{
                  		ProcessError(LOG_ERROR,"Pcs_Snd_ZFJB_P.x: Calling \
                  					Function PCSSndZFJBP2() Failed!",END);
                  		continue;
                 	}
                	
           		rtn_code = MQBKSend_Syn(strlen(buf_msg), buf_msg, 00, "ZFJ");
			free( buf_msg );
			if (rtn_code <0)  
              		{
              			ProcessError(LOG_ERROR,"Pcs_Snd_ZFJB_P.x: Sendding \
              						ZFJB Message Error!",END);
          			MQBKBack();
	               		continue;
              		}
              	
			rtn_code = MQBKCmit();
              		if ( rtn_code < 0 ) 
	       		{
       	      			ProcessError(LOG_ERROR,"Pcs_Snd_ZFJB_P.x: Commit \
       	      						ZFJB 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; */ 

{
       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 zfj_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;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -