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

📄 pcs_snd_ys1.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[15];
};
static struct sqlcxp sqlfpn =
{
    14,
    "Pcs_Snd_YS1.pc"
};


static unsigned long sqlctx = 1279283;


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

/* 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 * _*/);

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,44,0,0,0,0,1,0,
16,0,0,2,0,0,32,88,0,0,0,0,1,0,
30,0,0,3,0,0,32,100,0,0,0,0,1,0,
44,0,0,4,0,0,32,111,0,0,0,0,1,0,
58,0,0,5,0,0,32,119,0,0,0,0,1,0,
72,0,0,6,0,0,32,129,0,0,0,0,1,0,
86,0,0,7,0,0,32,142,0,0,0,0,1,0,
100,0,0,8,75,0,4,227,0,2,1,0,1,0,2,3,0,0,1,3,0,0,
122,0,0,9,57,0,4,228,0,2,1,0,1,0,2,3,0,0,1,3,0,0,
144,0,0,10,42,0,5,233,0,2,2,0,1,0,1,1,0,0,1,3,0,0,
166,0,0,11,42,0,5,300,0,2,2,0,1,0,1,1,0,0,1,3,0,0,
};


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*	File name		: PCS_Snd_YS1.x	                   		    *				
*	Module ID		:				               *
*	Module Name	:                                                      *
*	Purpose		: Convert YS data's format,record them in database 	*
*	Author             :                                                   *
*	Date Created	: 1999,07,14                                           *
*	Version		: Version 1.0                                          *
*	Environment	: Digital UNIX                                         *
*	Portability	: UNIX Platform                                        *
*	Warnings		:                                              *
*	References	:                                                      *
*	Calling Syntax	:                                                      *
*	Parameters	: None                                                 *
*	Returns		: void                                                 *
*	Calling Function:                                                      *
*	Called Functions: When system startup                                  *
*	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 "sqlca.h"
#include "sqlcpr.h"
#include <fcntl.h>
#include <signal.h>
#include "/usr/bkfx/include/Pcs_Snd_YS1/Pcs_Snd_YS1.h"
#include "/usr/bkfx/include/Pcs_Snd_YS1/ys1api.h"

int freect(void)
{
	if( buf1 != NULL )
	free(buf1);
	if( buf2 != NULL )
	free(buf2);
	/* EXEC SQL ROLLBACK WORK 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);
}


	if( fp!= NULL )
	fclose(fp);
/*	CloseErrLogObj();
*/	return(0);
}

/* the functions above are for PDYSSM and for PDYSSJ */

int mainfunction(char *arg,char *produce_err_str)
{	
	char tempstring[SHORT_NUM];
	char filename[SHORT_NUM];
	int typeflag;
	int flag;
	int CountYSSM;
	char cLine[MAX];
	long int YS_Len;
	int i,k;
	int retcode=0;
	char *PID = "Client Txn Clt_Mpt Process(Port 7111)";
	struct stZDYSSMDBRec stZDYSSMDB;
	struct stPDYSSMDBRec stPDYSSMDB;
	int m,n,count_zfj_zz,count_yssj_zz;
	char flag_ZXBF;
	int error_when_show_msg=0;	/*when this flag is 1, errlog will receive the message about error record*/

	m=0;n=0;
	flag_ZXBF='6';
	
	ERROR=0;
	signal(SIGTERM,freect);
	
	typeflag=InitPcsSnd_YS1();
	if(typeflag!=0)
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: Init error", END);
		return(-1);
	}
	
	fp = fopen( arg,"r" );
	if( fp == NULL )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: Error in function cannot open ", arg);
		/* exec sql rollback work release; */ 

{
  struct sqlexd sqlstm;

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


		return(-1);
	}
	trimpath( arg,filename );
	
	for( CountYSSM=0;CountYSSM<MAX;CountYSSM++ )
	{
		flag=myapi_ReadALinefromF( cLine,fp );
		if( flag!=1 )
		{
			fclose(fp);
			ProcessError(LOG_ERROR,"PCS_Snd_YS1: Error when read a line from ",arg);
			/* exec sql rollback work release; */ 

{
   struct sqlexd sqlstm;

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


			return(-1);
		}
		if( cLine[0]=='X'&&cLine[1]=='0'&&cLine[2]=='X'&&cLine[3]=='0')
			break;
	}
	rewind(fp);
	buf1= (char *) malloc ((YSSM_LEN+1)*CountYSSM+1);
	if( buf1==NULL )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: Error in function no space in memory",END);
		/* exec sql rollback work release; */ 

{
  struct sqlexd sqlstm;

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


		fclose(fp);
		return(-1);
	}
	flag=fread( buf1,sizeof(char),(YSSM_LEN+1)*CountYSSM,fp);
	if( flag!=(YSSM_LEN+1)*CountYSSM )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: Error in function when fread yssm to buffer",END);
		/* exec sql rollback work release; */ 

{
  struct sqlexd sqlstm;

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


		free(buf1);
		fclose(fp);
		return(-1);
	}
	buf1[(YSSM_LEN+1)*CountYSSM]='\0';
	flag=myapi_ReadALinefromF(cLine,fp);
	if( flag!=1 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: Error when read a line from ", arg);
		/* exec sql rollback work release; */ 

{
  struct sqlexd sqlstm;

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


		free(buf1);
		fclose(fp);
		return(-1);
	}
	YS_Len= ftell(fp);
	
	fseek(fp,0,2);
	YS_Len=ftell(fp)-YS_Len;
	buf2= (char *)malloc(YS_Len+1);
	if( buf2==NULL )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: no space in memory",END);
		/* exec sql rollback work release; */ 

{
  struct sqlexd sqlstm;

  sqlstm.sqlvsn = 8;
  sqlstm.arrsiz = 0;

⌨️ 快捷键说明

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