📄 ys1api.c
字号:
sqlstm.sqindv[9] = ( short *)&lsk_id;
sqlstm.sqharm[9] = (unsigned int )0;
sqlstm.sqhstv[10] = (unsigned char *)&(st.nf);
sqlstm.sqhstl[10] = (unsigned int )4;
sqlstm.sqindv[10] = ( short *)&nf_id;
sqlstm.sqharm[10] = (unsigned int )0;
sqlstm.sqhstv[11] = (unsigned char *)&v_fsxh;
sqlstm.sqhstl[11] = (unsigned int )4;
sqlstm.sqindv[11] = ( short *)0;
sqlstm.sqharm[11] = (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( ERROR!=0 )
{
ERROR=0;
return(-1);
}
return(0);
}
/*** convert yssj to struct ***/
void GetZDYSFileRec( char *cLine,struct stZDYSFileRec *ZDFile )
{
trim(cLine);
ZDFile->yffs=atol(cLine);
}
/*** convert yssj to stZDYSDBRec from yssjfile and yssmfile ***/
int ConvZDYS( long int v_fsxh,char *Zzfj,struct stZDYSFileRec ZDFile,struct stZDYSDBRec *ZDDBRec )
{
ZDDBRec->xh=v_fsxh;
strcpy(ZDDBRec->zfjbh,Zzfj);
ZDDBRec->yffs=ZDFile.yffs;
ZDDBRec->qzlss=0;
return(0);
}
/*** insert yssj to database ***/
int InsertSndZDYS(struct stZDYSDBRec ZDDBRec)
{
short qzlss_id;
ERROR=0;
/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */
/* EXEC SQL INSERT INTO t_fszdyssj (yffs,zfjbh,fsxh) VALUES
(:ZDDBRec.yffs,
/o :ZDDBRec.qzlss :qzlss_id,
o/ :ZDDBRec.zfjbh,
:ZDDBRec.xh); */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 12;
sqlstm.stmt = "insert into t_fszdyssj(yffs,zfjbh,fsxh) values (:b0,:b1,:b2)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )242;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&(ZDDBRec.yffs);
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)(ZDDBRec.zfjbh);
sqlstm.sqhstl[1] = (unsigned int )9;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqhstv[2] = (unsigned char *)&(ZDDBRec.xh);
sqlstm.sqhstl[2] = (unsigned int )4;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqharm[2] = (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( ERROR!=0 )
{
ERROR=0;
return(-1);
}
CHECK_TOTAL_YSSJ+=ZDDBRec.yffs;
return(0);
}
/*** insert a record of yssm and yssj into database ***/
int RecDBSingleZDYS( struct stZDYSSMDBRec ZDYSSMDBRec,char *Filename,long int v_fsxh,char *cLine )
{
int flag;
int fsfbh;
char datatype='1';
char tempstring[MID_NUM];
char Zzfj[SHORT_NUM];
struct stZDYSFileRec ZDFile;
struct stZDYSDBRec ZDDBRec;
int i,j,k;
int zfCount;
char wjbh[SHORT_NUM];
int retcode=0;
flag=CreateSndLogAndHZRec( datatype,ZDYSSMDBRec.jsfbh,v_fsxh );
if( flag!=1 )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when use function ","CreateSndLogAndHZRec");
return(-1);
}
for(i=0,j=0;i<10;i++)
{
if(Filename[i]=='.')
{
wjbh[j]=Filename[i+1];
j++;
if( Filename[i+2]!='\0' )
{
wjbh[j]=Filename[i+2];
j++;
}
wjbh[j]='\0';
break;
}
}
flag=InsertSndZDYSSM( ZDYSSMDBRec, v_fsxh );
if( flag!=0 )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when insert zdyssm into database",END);
return(-1);
}
zfCount=0;
/* EXEC SQL VAR Zzfj IS string; */
/* EXEC SQL DECLARE cur_zfj CURSOR FOR
SELECT zfjbh FROM t_zfj WHERE sjbh=:ZDYSSMDBRec.fsfbh and yxnf=:ZDYSSMDBRec.nf ORDER BY zfjxh; */
/* EXEC SQL SELECT count(*) INTO :zfCount FROM t_zfj WHERE sjbh=:ZDYSSMDBRec.fsfbh AND yxnf=:ZDYSSMDBRec.nf; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 12;
sqlstm.stmt = "select count(*) into :b0 from t_zfj where (sjbh=:b1 and yx\
nf=:b2)";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )268;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&zfCount;
sqlstm.sqhstl[0] = (unsigned int )4;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)(ZDYSSMDBRec.fsfbh);
sqlstm.sqhstl[1] = (unsigned int )3;
sqlstm.sqindv[1] = ( short *)0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqhstv[2] = (unsigned char *)&(ZDYSSMDBRec.nf);
sqlstm.sqhstl[2] = (unsigned int )4;
sqlstm.sqindv[2] = ( short *)0;
sqlstm.sqharm[2] = (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( zfCount==0 )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error the number of zfj is zero, please check it",END);
return(-1);
}
j=0;
if( Filename[1]=='Z'&&Filename[2]=='Z' )
{
/* EXEC SQL OPEN cur_zfj; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 12;
sqlstm.stmt = sq0012;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )294;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)(ZDYSSMDBRec.fsfbh);
sqlstm.sqhstl[0] = (unsigned int )3;
sqlstm.sqindv[0] = ( short *)0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqhstv[1] = (unsigned char *)&(ZDYSSMDBRec.nf);
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();
}
for( i=0;i<zfCount;i++ )
{
if( cLine[j]=='\0' )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssj, the number of yffs not enough",END);
return(-1);
}
for( k=0;; )
{
if(cLine[j]==',')
{
tempstring[k]='0';
tempstring[k+1]='\0';
j++;
break;
}
else
{
tempstring[k]=cLine[j];
k++;
if( cLine[j+1]==',' )
{
tempstring[k]='\0';
j+=2;
break;
}
else j++;
}
}
GetZDYSFileRec( tempstring,&ZDFile );
/* EXEC SQL FETCH cur_zfj INTO :Zzfj; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 12;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )316;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)Zzfj;
sqlstm.sqhstl[0] = (unsigned int )10;
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) sqlerror();
}
ConvZDYS( v_fsxh,Zzfj,ZDFile,&ZDDBRec );
flag=InsertSndZDYS( ZDDBRec );
if( flag!=0 )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when use function ","InsertSndZDYS");
return(-1);
}
}
/* EXEC SQL CLOSE cur_zfj; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 12;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )334;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) sqlerror();
}
}
else if (Filename[1]=='Z'&&Filename[2]=='J' )
{
for( i=0,j=0;i<MAX_LINE_LEN;i++ )
{
for( k=0;k<SHORT_NUM;j++,k++ )
{
if( cLine[j]==',' )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssj, ',' at the begin of a line or connected with another ','",END);
return(-1);
}
tempstring[k]=cLine[j];
if( cLine[j+1]==','||cLine[j+1]=='\n' )
break;
}
k++;
j+=2;
tempstring[k]='\0';
ZDDBRec.xh=v_fsxh;
strcpy(ZDDBRec.zfjbh,tempstring);
for( k=0;k<SHORT_NUM;j++,k++ )
{
if( cLine[j]==',' )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssj, ',' connected with another ','",END);
return(-1);
}
if( cLine[j]=='\n'||cLine[j]==EOF )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssj, zfjbh without its yffs",END);
return(-1);
}
tempstring[k]=cLine[j];
if( cLine[j+1]==','||cLine[j+1]=='\n' )
break;
}
k++;
j+=2;
tempstring[k]='\0';
trim(tempstring);
ZDDBRec.yffs=atoi(tempstring);
/* ZDDBRec.qzlss=0;
*/ flag=InsertSndZDYS( ZDDBRec );
if( flag!=0 )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when use function ","InsertSndZDYS");
return(-1);
}
if( cLine[j]=='\0'||cLine[j]==EOF )
{
return(0);
}
}
}
return(0);
}
/*
//Process ZDYS data convert, put them into DB, send the data
//The divided character is ','
*/
int ConvRecDBZDYS( char *cLine,struct stZDYSSMDBRec ZDYSSMDB,char *buf2,char *Filename,int *n )
{
int flag,i;
long int v_fsxh;
int retcode=0;
/* EXEC SQL SELECT s_fsxh.NEXTVAL INTO :v_fsxh FROM SYS.DUAL ; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 8;
sqlstm.arrsiz = 12;
sqlstm.stmt = "select s_fsxh.nextval into :b0 from SYS.DUAL ";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )348;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)0;
sqlstm.sqhstv[0] = (unsigned char *)&v_fsxh;
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) sqlerror();
}
myapi_ReadALine(cLine,buf2,n);
flag=RecDBSingleZDYS( ZDYSSMDB, Filename,v_fsxh,cLine );
if( flag!=0 )
{
ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when insert yssm and yssj into database",END);
return(-1);
}
UpdateSndLogRecStatus( v_fsxh );
return(0);
}
/*Fill in the struct: stPDYSSMDBRec with the content of a stYSSMFileRec struct,*/
/*Add and modify some components of the struct during the process. */
/*This procedure should not fail. */
int myapi_ConvertToPDYSSMDBRec(struct stYSSMFileRec stYSSMFilePoint,struct stPDYSSMDBRec *stPDYSSMDBPoint,char *FileName )
{
char temp_string[STR_LEN];
char datatype;
char *temp_Str;
int flag;
if(FileName[6]=='\0') /* Get xh of the struct */
myapi_ReadString(FileName,temp_string,5,5);
else
myapi_ReadString(FileName,temp_string,5,6);
strcpy(stPDYSSMDBPoint->wjbh,temp_string);
strcpy(stPDYSSMDBPoint->bkdh,stYSSMFilePoint.bkdh);
myapi_ReadString(FileName,temp_string,0,3);
if( temp_string[0]=='B'&&temp_string[1]=='P'&&temp_string[2]=='Z' )
datatype=BPZ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -