📄 myapi.c
字号:
/* 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[5];
unsigned int sqhstl[5];
short *sqindv[5];
unsigned int sqharm[5];
unsigned int *sqharc[5];
} sqlstm = {8,5};
/* 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,52,0,3,156,0,2,2,0,1,0,1,3,0,0,1,97,0,0,
38,0,0,3,0,0,31,165,0,0,0,0,1,0,
52,0,0,4,47,0,3,176,0,5,5,0,1,0,1,97,0,0,1,97,0,0,1,9,0,0,1,97,0,0,1,3,0,0,
86,0,0,5,0,0,31,186,0,0,0,0,1,0,
100,0,0,6,42,0,5,237,0,1,1,0,1,0,1,3,0,0,
118,0,0,7,0,0,29,239,0,0,0,0,1,0,
132,0,0,8,0,0,31,248,0,0,0,0,1,0,
146,0,0,9,71,0,5,258,0,2,2,0,1,0,1,3,0,0,1,97,0,0,
168,0,0,10,0,0,29,261,0,0,0,0,1,0,
182,0,0,11,0,0,31,271,0,0,0,0,1,0,
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* File name : myapi.pc *
* Module ID : *
* Module Name : *
* Purpose : Sub Function Used By Pcs_Rcv_GH.pc *
* Author : Liu Yan Qiu (DIMPT) * *
* Date Created : 1999,10,27 *
* 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 "/usr/bkfx/include/Pcs_Rcv_GH/Pcs_Rcv_GH.h"
/* EXEC SQL BEGIN DECLARE SECTION; */
/* VARCHAR ghnr[ LEN_GHNR+1 ]; */
struct { unsigned short len; unsigned char arr[50001]; } ghnr;
/* EXEC SQL END DECLARE SECTION; */
void Free_Mem()
{
ProcessError(LOG_NORMAL, "Pcs_Rcv_GH.x Is Terminated By User!\n",END);
if ( tmp != NULL ) free( tmp );
if ( data_type != NULL) free( data_type );
if ( buf_hz != NULL) free( buf_hz );
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 ReadGHMsg()
{
while(1)
{
if ( (( buf = (char *)malloc( LEN_GH_BUF ))==NULL) || \
(( data_type = (char *)malloc( LEN_DATA_TYPE ))==NULL) )
{
ProcessError(LOG_ERROR,"Pcs_Rcv_GH.x: Malloc GH Buffer Error!",END);
sleep(InitInterval);
}
else
break;
}
tmp = buf;
rtn_code = MQBKReceiveSyn_Wait( &buf_length, buf, data_type );
if ( rtn_code < 0 )
{
free( data_type );
free( tmp );
return(-2);
}
else
{
if ( ( data_type[0] == 'G' ) && ( data_type[1]=='H' ) )
{
strncpy( c_fsxh,buf,10);
c_fsxh[10]='\0';
fsxh = atoi( c_fsxh);
buf = buf+10;
strncpy( fssjbh,buf,2);
fssjbh[2]='\0';
buf = buf+2;
strncpy( jssjbh,buf,2);
jssjbh[2]='\0';
buf = buf+2;
strncpy( ghbh,buf,3);
ghbh[3]='\0';
buf = buf+3;
strncpy( ghxl,buf,2);
ghxl[2]='\0';
buf = buf+2;
strcpy( ghnr.arr, buf);
ghnr.len = strlen( ghnr.arr);
#ifdef DEBUG
printf("Pcs_Rcv_GH.x : recv a GH msg,jsxh is %d \n",fsxh);
printf("Pcs_Rcv_GH.x : jssjbh, fssjbh, ghbh, ghxl is : %s,%s,%s,%s \n", \
jssjbh,fssjbh,ghbh,ghxl);
#endif
free( tmp );
}
else if ( ( data_type[0] == 'C' ) && ( data_type[1]=='A' ) && \
( data_type[2] == 'N') )
{
strncpy( c_fsxh, buf, 10);
c_fsxh[10]='\0';
fsxh = atoi( c_fsxh);
buf = buf+10;
strncpy( fssjbh, buf, 2);
fssjbh[2]='\0';
buf = buf+2;
strncpy( jssjbh,buf,2);
jssjbh[2]='\0';
buf = buf+2;
#ifdef DEBUG
printf("Pcs_Rcv_GH.x : recv a Cancel msg,jsxh is %d \n",fsxh);
printf("the fssjbh jssjbh is %s,%s\n",fssjbh,jssjbh);
#endif
/* *tmp will be used in funntion Cancel_UpdateJSRZAndZFRZ(), \
so it can't be free now */
}
else
{
free( tmp );
free( data_type );
return(-3);
}
}
return(1);
}
int CreateRcvLogStatus()
{
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
/* EXEC SQL INSERT INTO T_JSRZ VALUES( :fsxh, '5', '1', :fssjbh, sysdate ); */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 2;
sqlstm.stmt = "insert into T_JSRZ values (:b0,'5','1',:b1,sysdate )";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )16;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&fsxh;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)fssjbh;
sqlstm.sqhstl[1] = (unsigned int )3;
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 );
ProcessError(LOG_ERROR,"Pcs_Rcv_GH.x: Running Function CreateRcvLogStatus() \
SQL Error!",END);
/* EXEC SQL RollBack; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 2;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )38;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
return (-1);
}
int InsertRcvGHRec()
{
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerror; */
/* EXEC SQL INSERT INTO T_JSGH
VALUES( :ghbh, :ghxl, :ghnr, :fssjbh, :fsxh); */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 5;
sqlstm.stmt = "insert into T_JSGH values (:b0,:b1,:b2,:b3,:b4)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )52;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)ghbh;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)ghxl;
sqlstm.sqhstl[1] = (unsigned int )3;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqhstv[2] = (unsigned char *)&ghnr;
sqlstm.sqhstl[2] = (unsigned int )50003;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqhstv[3] = (unsigned char *)fssjbh;
sqlstm.sqhstl[3] = (unsigned int )3;
sqlstm.sqindv[3] = ( short *)0;
sqlstm.sqharm[3] = (unsigned int )0;
sqlstm.sqhstv[4] = (unsigned char *)&fsxh;
sqlstm.sqhstl[4] = (unsigned int )4;
sqlstm.sqindv[4] = ( short *)0;
sqlstm.sqharm[4] = (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;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -