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

📄 pcs_snd_pdys_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_PDYS_P.pc"
};


static unsigned long sqlctx = 10234539;


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

/* 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 zjfs ,zfjbh ,fsxh  from t_fspdyssj where fsxh=:b0           ";
 static char *sq0012 = 
"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,47,0,2,2,0,1,0,1,1,0,0,1,3,0,0,
24,0,0,2,0,0,29,49,0,0,0,0,1,0,
38,0,0,3,57,0,4,76,0,2,1,0,1,0,2,3,0,0,1,3,0,0,
60,0,0,4,143,0,4,90,0,16,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,3,0,0,2,
3,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,
138,0,0,5,46,0,4,115,0,2,1,0,1,0,2,97,0,0,1,3,0,0,
160,0,0,6,67,0,9,167,0,1,1,0,1,0,1,3,0,0,
178,0,0,6,0,0,13,171,0,3,0,0,1,0,2,3,0,0,2,97,0,0,2,3,0,0,
204,0,0,6,0,0,15,182,0,0,0,0,1,0,
218,0,0,7,0,0,31,192,0,0,0,0,1,0,
232,0,0,8,0,0,31,200,0,0,0,0,1,0,
246,0,0,9,0,0,32,217,0,0,0,0,1,0,
260,0,0,10,34,0,4,246,0,1,0,0,1,0,2,97,0,0,
278,0,0,11,68,0,4,250,0,3,2,0,1,0,2,3,0,0,1,1,0,0,1,1,0,0,
304,0,0,12,65,0,9,258,0,2,2,0,1,0,1,1,0,0,1,1,0,0,
326,0,0,12,0,0,15,264,0,0,0,0,1,0,
340,0,0,12,0,0,13,270,0,1,0,0,1,0,2,3,0,0,
358,0,0,13,0,0,31,282,0,0,0,0,1,0,
372,0,0,14,0,0,29,285,0,0,0,0,1,0,
386,0,0,12,0,0,15,293,0,0,0,0,1,0,
};


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*	File name		: Pcs_Snd_PDYS_P.x	                   		*
*	Module ID		:				          	*
*	Module Name	:                                                 	*
*	Purpose		: send PDYS 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 "/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 UpdateHZRec( long int lg_Key );
int PcsSndMQPDYS(long int 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 pdys MQ string and put then to MQ */

int PcsSndMQPDYS(long int key)
{
	long int fsxh;
	int zjfs,lszjfs;
	char zfjbh[9];
	int count_rec;
	char *message;
	char tempstring[MID_LEN];
	char datatype[SHORT_LEN];
	char wjbh[SHORT_LEN];
	char jsfbh[3];
	int year;
	int i;
	int retcode=0;
	struct stPDYSSMDBRec PDYSSMDB;
	struct stPDYSSMDBRec_id st_id;
	struct stPDYSDBRec PDYSDB;
	char str_zdqa[3],str_zdqb[3];
	
	ERROR=0;
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

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

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 2;
 sqlstm.stmt = "select count(*)  into :b0  from t_fspdyssj 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_PDYS_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_PDYS_P: Error No space in memory",END );
		return(-1);
	}
	message[0]='\0';
	/* EXEC SQL SELECT * INTO 
		  :PDYSSMDB.bkdh,
		  :PDYSSMDB.yslx,
		  :PDYSSMDB.wjbh,
		  :PDYSSMDB.qdqa,
		  :PDYSSMDB.qdqb :st_id.qdqb,
		  :PDYSSMDB.zdqa :st_id.zdqa,
		  :PDYSSMDB.zdqb :st_id.zdqb,
		  :PDYSSMDB.kq,
		  :PDYSSMDB.dingj :st_id.dingj,
		  :PDYSSMDB.dyzs  :st_id.dyzs,
		  :PDYSSMDB.dyk   :st_id.dyk,
		  :PDYSSMDB.lszs  :st_id.lszs,
		  :PDYSSMDB.lsk   :st_id.lsk,
		  :PDYSSMDB.nf,
		  :PDYSSMDB.xh
		 FROM t_fspdyssm WHERE fsxh=:key; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 16;
 sqlstm.stmt = "select * into :b0,:b1,:b2,:b3,:b4:b5,:b6:b7,:b8:b9,:b10,:b11\
:b12,:b13:b14,:b15:b16,:b17:b18,:b19:b20,:b21,:b22  from t_fspdyssm where fsxh\
=:b23";
 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  *)(PDYSSMDB.bkdh);
 sqlstm.sqhstl[0] = (unsigned int  )8;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)(PDYSSMDB.yslx);
 sqlstm.sqhstl[1] = (unsigned int  )2;
 sqlstm.sqindv[1] = (         short *)0;
 sqlstm.sqharm[1] = (unsigned int  )0;
 sqlstm.sqhstv[2] = (unsigned char  *)(PDYSSMDB.wjbh);
 sqlstm.sqhstl[2] = (unsigned int  )3;
 sqlstm.sqindv[2] = (         short *)0;
 sqlstm.sqharm[2] = (unsigned int  )0;
 sqlstm.sqhstv[3] = (unsigned char  *)&(PDYSSMDB.qdqa);
 sqlstm.sqhstl[3] = (unsigned int  )4;
 sqlstm.sqindv[3] = (         short *)0;
 sqlstm.sqharm[3] = (unsigned int  )0;
 sqlstm.sqhstv[4] = (unsigned char  *)&(PDYSSMDB.qdqb);
 sqlstm.sqhstl[4] = (unsigned int  )4;
 sqlstm.sqindv[4] = (         short *)&(st_id.qdqb);
 sqlstm.sqharm[4] = (unsigned int  )0;
 sqlstm.sqhstv[5] = (unsigned char  *)&(PDYSSMDB.zdqa);
 sqlstm.sqhstl[5] = (unsigned int  )4;
 sqlstm.sqindv[5] = (         short *)&(st_id.zdqa);
 sqlstm.sqharm[5] = (unsigned int  )0;
 sqlstm.sqhstv[6] = (unsigned char  *)&(PDYSSMDB.zdqb);
 sqlstm.sqhstl[6] = (unsigned int  )4;
 sqlstm.sqindv[6] = (         short *)&(st_id.zdqb);
 sqlstm.sqharm[6] = (unsigned int  )0;
 sqlstm.sqhstv[7] = (unsigned char  *)(PDYSSMDB.kq);
 sqlstm.sqhstl[7] = (unsigned int  )7;
 sqlstm.sqindv[7] = (         short *)0;
 sqlstm.sqharm[7] = (unsigned int  )0;
 sqlstm.sqhstv[8] = (unsigned char  *)&(PDYSSMDB.dingj);
 sqlstm.sqhstl[8] = (unsigned int  )4;
 sqlstm.sqindv[8] = (         short *)&(st_id.dingj);
 sqlstm.sqharm[8] = (unsigned int  )0;
 sqlstm.sqhstv[9] = (unsigned char  *)&(PDYSSMDB.dyzs);
 sqlstm.sqhstl[9] = (unsigned int  )4;
 sqlstm.sqindv[9] = (         short *)&(st_id.dyzs);
 sqlstm.sqharm[9] = (unsigned int  )0;
 sqlstm.sqhstv[10] = (unsigned char  *)&(PDYSSMDB.dyk);
 sqlstm.sqhstl[10] = (unsigned int  )4;
 sqlstm.sqindv[10] = (         short *)&(st_id.dyk);
 sqlstm.sqharm[10] = (unsigned int  )0;
 sqlstm.sqhstv[11] = (unsigned char  *)&(PDYSSMDB.lszs);
 sqlstm.sqhstl[11] = (unsigned int  )4;
 sqlstm.sqindv[11] = (         short *)&(st_id.lszs);
 sqlstm.sqharm[11] = (unsigned int  )0;
 sqlstm.sqhstv[12] = (unsigned char  *)&(PDYSSMDB.lsk);
 sqlstm.sqhstl[12] = (unsigned int  )4;
 sqlstm.sqindv[12] = (         short *)&(st_id.lsk);
 sqlstm.sqharm[12] = (unsigned int  )0;
 sqlstm.sqhstv[13] = (unsigned char  *)&(PDYSSMDB.nf);
 sqlstm.sqhstl[13] = (unsigned int  )4;
 sqlstm.sqindv[13] = (         short *)0;
 sqlstm.sqharm[13] = (unsigned int  )0;
 sqlstm.sqhstv[14] = (unsigned char  *)&(PDYSSMDB.xh);
 sqlstm.sqhstl[14] = (unsigned int  )4;
 sqlstm.sqindv[14] = (         short *)0;
 sqlstm.sqharm[14] = (unsigned int  )0;
 sqlstm.sqhstv[15] = (unsigned char  *)&key;
 sqlstm.sqhstl[15] = (unsigned int  )4;
 sqlstm.sqindv[15] = (         short *)0;
 sqlstm.sqharm[15] = (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();
}


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

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 16;
 sqlstm.stmt = "select sjbh into :b0  from t_hz where fsxh=:b1";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )138;
 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(PDYSSMDB.bkdh,8);
	strcat(message,PDYSSMDB.bkdh);
	str_format(PDYSSMDB.yslx,2);
	strcat(message,PDYSSMDB.yslx);
	str_format(PDYSSMDB.wjbh,3);
	strcat(message,PDYSSMDB.wjbh);
	itoa(PDYSSMDB.qdqa,tempstring,3);
	strcat(message,tempstring);
	itoa(PDYSSMDB.qdqb,tempstring,3);
	strcat(message,tempstring);
	itoa(PDYSSMDB.zdqa,tempstring,3);
	strcat(message,tempstring);


	itoa(PDYSSMDB.zdqb,tempstring,3);
	strcat(message,tempstring);
	strcat(message,PDYSSMDB.kq);
	ftoa(PDYSSMDB.dingj,tempstring,2,8);
	strcat(message,tempstring);
	itoa(PDYSSMDB.dyzs,tempstring,11);
	strcat(message,tempstring);
	ftoa(PDYSSMDB.dyk,tempstring,2,12);
	strcat(message,tempstring);
	itoa(PDYSSMDB.lszs,tempstring,11);
	strcat(message,tempstring);
	ftoa(PDYSSMDB.lsk,tempstring,2,12);
	strcat(message,tempstring);
	itoa(PDYSSMDB.nf,tempstring,5);
	strcat(message,tempstring);
*/
	if( st_id.zdqa < 0 )
		strcpy(str_zdqa,"  ");
	else 
		sprintf(str_zdqa,"%2d",PDYSSMDB.zdqa);
	if( st_id.zdqb < 0 )
		strcpy(str_zdqb,"  ");

⌨️ 快捷键说明

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