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

📄 pcs_snd_zdys_p.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[18];
};
static struct sqlcxp sqlfpn =
{
    17,
    "Pcs_Snd_ZDYS_P.pc"
};


static unsigned long sqlctx = 10237099;


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[13];
   unsigned int   sqhstl[13];
            short *sqindv[13];
   unsigned int   sqharm[13];
   unsigned int   *sqharc[13];
} sqlstm = {8,13};

/* 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 *sq0006 = 
"select yffs ,zfjbh ,fsxh  from t_fszdyssj where fsxh=:b0           ";
 static char *sq0011 = 
"select fsxh  from t_fsrz where (sjzt=:b0 and sjfl=:b1)           ";
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,56,0,5,48,0,2,2,0,1,0,1,1,0,0,1,3,0,0,
24,0,0,2,0,0,29,50,0,0,0,0,1,0,
38,0,0,3,57,0,4,74,0,2,1,0,1,0,2,3,0,0,1,3,0,0,
60,0,0,4,116,0,4,88,0,13,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,97,0,0,2,
4,0,0,2,3,0,0,2,4,0,0,2,3,0,0,2,4,0,0,2,3,0,0,2,3,0,0,1,3,0,0,
126,0,0,5,46,0,4,111,0,2,1,0,1,0,2,97,0,0,1,3,0,0,
148,0,0,6,67,0,9,146,0,1,1,0,1,0,1,3,0,0,
166,0,0,6,0,0,13,150,0,3,0,0,1,0,2,3,0,0,2,97,0,0,2,3,0,0,
192,0,0,6,0,0,15,162,0,0,0,0,1,0,
206,0,0,7,0,0,31,172,0,0,0,0,1,0,
220,0,0,8,0,0,32,197,0,0,0,0,1,0,
234,0,0,9,34,0,4,227,0,1,0,0,1,0,2,97,0,0,
252,0,0,10,68,0,4,231,0,3,2,0,1,0,2,3,0,0,1,1,0,0,1,1,0,0,
278,0,0,11,65,0,9,240,0,2,2,0,1,0,1,1,0,0,1,1,0,0,
300,0,0,11,0,0,15,246,0,0,0,0,1,0,
314,0,0,11,0,0,13,252,0,1,0,0,1,0,2,3,0,0,
332,0,0,12,0,0,31,264,0,0,0,0,1,0,
346,0,0,13,0,0,29,268,0,0,0,0,1,0,
360,0,0,11,0,0,15,273,0,0,0,0,1,0,
};


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*	File name		: Pcs_Snd_ZDYS_P.x	                   		*
*	Module ID		:				          	*
*	Module Name	:                                                 	*
*	Purpose		: send ZDYS to MQ whose fszt=2		 	*
*	Author             	: lix                                       	*
*	Date Created	: 1999,07,26                                       	*
*	Version		: Version 1.0                                      	*
*	Environment	: Digital UNIX                                     	*
*	Portability	: UNIX Platform                                    	*
*	Warnings		:                                              *
*	References	:                                                      *
*	Calling Syntax	:                                                      *
*	Parameters	: None                                                 *
*	Returns		: void                                                 *
*	Calling Function	:                                                      *
*	Called Functions	: timely	                                  *
*	Datastores and usages:                                                 *     
*        	   (a) Input                                                   *
* 	   (b) OutPut                                                          *       
*	Report		: None                                                 *
*	Screens		: None                                                 *
*	Messages Files	: None                                                 *
*	Change Log	:                                                      *
*	Change No. 	Date	Author	Reason For Change                 *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*/

#include "stdio.h"
#include "stdlib.h"
#include "sqlcpr.h"
#include "unistd.h"
#include "/usr/bkfx/include/Pcs_Snd_YS_P/Pcs_Snd_YS_P.h"
#include <fcntl.h>
#include <signal.h>
#include "/usr/bkfx/include/myapi.h"

int PcsSndMQZDYS(long int key);
int UpdateHZRec( long int lg_Key );
void freect(void);

/*update the table to locate the relative flag*/
int UpdateHZRec( long int lg_Key )
{
	char hzzt = HZ_SENDED;
	
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

	/* EXEC SQL UPDATE T_HZ SET HZZT = :hzzt, HZJSSJ = SYSDATE
		WHERE FSXH = :lg_Key; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 2;
 sqlstm.stmt = "update T_HZ  set HZZT=:b0,HZJSSJ=sysdate  where FSXH=:b1";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )2;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)&hzzt;
 sqlstm.sqhstl[0] = (unsigned int  )1;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)&lg_Key;
 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) sqlerror();
}


	/* EXEC SQL COMMIT WORK; */ 

{
 struct sqlexd sqlstm;

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


	return(1);
} 

/* composing zdys MQ string and put then to MQ */
int PcsSndMQZDYS(long int key)
{
	long int fsxh;
	int yffs,qzlss;
	int count_rec;
	char tempstring[MID_LEN];
	char datatype[SHORT_LEN];
	char wjbh[SHORT_LEN];
	char jsfbh[3];
	int year;
	int i;
	int retcode=0;
	char zfjbh[9];
	struct stZDYSSMDBRec ZDYSSMDB;
	struct stZDYSSMDBRec_id st_id;
	struct stZDYSDBRec ZDYSDB;
	
	ERROR=0;
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

	/* EXEC SQL SELECT count(*) INTO :count_rec FROM t_fszdyssj WHERE fsxh=:key; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 2;
 sqlstm.stmt = "select count(*)  into :b0  from t_fszdyssj where fsxh=:b1";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )38;
 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.sqhstv[1] = (unsigned char  *)&key;
 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) sqlerror();
}


	if( count_rec==0 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_ZDYS_P: Error cannot found yssj ",END);
		return(-1);
	}
	message=(char *)malloc((YSSM_MSG_LEN+YSSJ_MSG_LEN*count_rec+1)*sizeof(char));
	if( message==NULL )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_ZDYS_P: No space in memory",END);
		return(-1);
	}
	
	message[0]='\0';
	/* EXEC SQL SELECT * INTO 
		  :ZDYSSMDB.bkdh,
		  :ZDYSSMDB.yslx,
		  :ZDYSSMDB.wjbh,
		  :ZDYSSMDB.qdqa,
		  :ZDYSSMDB.kq,
		  :ZDYSSMDB.dingj :st_id.dingj,
		  :ZDYSSMDB.dyzs  :st_id.dyzs,
		  :ZDYSSMDB.dyk   :st_id.dyk,
		  :ZDYSSMDB.lszs  :st_id.lszs,
		  :ZDYSSMDB.lsk   :st_id.lsk,
		  :ZDYSSMDB.nf,
		  :ZDYSSMDB.xh
		FROM t_fszdyssm WHERE fsxh=:key; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 13;
 sqlstm.stmt = "select * into :b0,:b1,:b2,:b3,:b4,:b5:b6,:b7:b8,:b9:b10,:b11\
:b12,:b13:b14,:b15,:b16  from t_fszdyssm where fsxh=:b17";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )60;
 sqlstm.selerr = (unsigned short)1;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)(ZDYSSMDB.bkdh);
 sqlstm.sqhstl[0] = (unsigned int  )8;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)(ZDYSSMDB.yslx);
 sqlstm.sqhstl[1] = (unsigned int  )2;
 sqlstm.sqindv[1] = (         short *)0;
 sqlstm.sqharm[1] = (unsigned int  )0;
 sqlstm.sqhstv[2] = (unsigned char  *)(ZDYSSMDB.wjbh);
 sqlstm.sqhstl[2] = (unsigned int  )3;
 sqlstm.sqindv[2] = (         short *)0;
 sqlstm.sqharm[2] = (unsigned int  )0;
 sqlstm.sqhstv[3] = (unsigned char  *)&(ZDYSSMDB.qdqa);
 sqlstm.sqhstl[3] = (unsigned int  )4;
 sqlstm.sqindv[3] = (         short *)0;
 sqlstm.sqharm[3] = (unsigned int  )0;
 sqlstm.sqhstv[4] = (unsigned char  *)(ZDYSSMDB.kq);
 sqlstm.sqhstl[4] = (unsigned int  )7;
 sqlstm.sqindv[4] = (         short *)0;
 sqlstm.sqharm[4] = (unsigned int  )0;
 sqlstm.sqhstv[5] = (unsigned char  *)&(ZDYSSMDB.dingj);
 sqlstm.sqhstl[5] = (unsigned int  )4;
 sqlstm.sqindv[5] = (         short *)&(st_id.dingj);
 sqlstm.sqharm[5] = (unsigned int  )0;
 sqlstm.sqhstv[6] = (unsigned char  *)&(ZDYSSMDB.dyzs);
 sqlstm.sqhstl[6] = (unsigned int  )4;
 sqlstm.sqindv[6] = (         short *)&(st_id.dyzs);
 sqlstm.sqharm[6] = (unsigned int  )0;
 sqlstm.sqhstv[7] = (unsigned char  *)&(ZDYSSMDB.dyk);
 sqlstm.sqhstl[7] = (unsigned int  )4;
 sqlstm.sqindv[7] = (         short *)&(st_id.dyk);
 sqlstm.sqharm[7] = (unsigned int  )0;
 sqlstm.sqhstv[8] = (unsigned char  *)&(ZDYSSMDB.lszs);
 sqlstm.sqhstl[8] = (unsigned int  )4;
 sqlstm.sqindv[8] = (         short *)&(st_id.lszs);
 sqlstm.sqharm[8] = (unsigned int  )0;
 sqlstm.sqhstv[9] = (unsigned char  *)&(ZDYSSMDB.lsk);
 sqlstm.sqhstl[9] = (unsigned int  )4;
 sqlstm.sqindv[9] = (         short *)&(st_id.lsk);
 sqlstm.sqharm[9] = (unsigned int  )0;
 sqlstm.sqhstv[10] = (unsigned char  *)&(ZDYSSMDB.nf);
 sqlstm.sqhstl[10] = (unsigned int  )4;
 sqlstm.sqindv[10] = (         short *)0;
 sqlstm.sqharm[10] = (unsigned int  )0;
 sqlstm.sqhstv[11] = (unsigned char  *)&(ZDYSSMDB.xh);
 sqlstm.sqhstl[11] = (unsigned int  )4;
 sqlstm.sqindv[11] = (         short *)0;
 sqlstm.sqharm[11] = (unsigned int  )0;
 sqlstm.sqhstv[12] = (unsigned char  *)&key;
 sqlstm.sqhstl[12] = (unsigned int  )4;
 sqlstm.sqindv[12] = (         short *)0;
 sqlstm.sqharm[12] = (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) sqlerror();
}


/*	ZDYSSMDB.bkdh[7]='\0';
	ZDYSSMDB.yslx[1]='\0';
	ZDYSSMDB.wjbh[2]='\0';
	ZDYSSMDB.kq[6]='\0';
		
	itoa(key,tempstring,11);
	strcat(message,tempstring);
*/
	sprintf(message,"%10ld",key);	
	/* EXEC SQL SELECT sjbh INTO :jsfbh FROM t_hz WHERE fsxh=:key; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 13;
 sqlstm.stmt = "select sjbh into :b0  from t_hz where fsxh=:b1";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )126;
 sqlstm.selerr = (unsigned short)1;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)jsfbh;
 sqlstm.sqhstl[0] = (unsigned int  )3;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)&key;
 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) sqlerror();
}


/*	strcat(message,jsfbh);
	strcat(message,BSBH);
	str_format(ZDYSSMDB.bkdh,8);
	strcat(message,ZDYSSMDB.bkdh);
	str_format(ZDYSSMDB.yslx,2);
	strcat(message,ZDYSSMDB.yslx);
	str_format(ZDYSSMDB.wjbh,3);
	strcat(message,ZDYSSMDB.wjbh);
*/
	sprintf(message,"%s%2s%2s%7s%1s%2s",message,jsfbh,BSBH,ZDYSSMDB.bkdh,ZDYSSMDB.yslx,ZDYSSMDB.wjbh);

/*	itoa(ZDYSSMDB.qdqa,tempstring,3);
	strcat(message,tempstring);
	strcat(message,ZDYSSMDB.kq);
	ftoa(ZDYSSMDB.dingj,tempstring,2,8);
	strcat(message,tempstring);
	itoa(ZDYSSMDB.dyzs,tempstring,11);
	strcat(message,tempstring);
	ftoa(ZDYSSMDB.dyk,tempstring,2,12);
	strcat(message,tempstring);
	itoa(ZDYSSMDB.lszs,tempstring,11);
	strcat(message,tempstring);
	ftoa(ZDYSSMDB.lsk,tempstring,2,12);
	strcat(message,tempstring);
	itoa(ZDYSSMDB.nf,tempstring,5);
	strcat(message,tempstring);
*/
	sprintf(message,"%s%2d%6s%7.2f%10ld%11.2f%10d%11.2f%4d",message,\
		ZDYSSMDB.qdqa,ZDYSSMDB.kq,ZDYSSMDB.dingj,ZDYSSMDB.dyzs,ZDYSSMDB.dyk,\
		ZDYSSMDB.lszs,ZDYSSMDB.lsk,ZDYSSMDB.nf);

	/* EXEC SQL DECLARE cur_yssj CURSOR FOR 
		SELECT yffs,zfjbh,fsxh FROM t_fszdyssj WHERE fsxh=:key; */ 

⌨️ 快捷键说明

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