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

📄 ys1api.c

📁 unix 下用pro*c tuxedo 开发的东西
💻 C
📖 第 1 页 / 共 4 页
字号:
	else if(temp_string[0]=='B'&&temp_string[1]=='P'&&temp_string[2]=='J' )
		datatype=BPJ;
	else if(temp_string[0]=='K'&&temp_string[1]=='P'&&temp_string[2]=='Z' )
		datatype=KPZ;
	else if(temp_string[0]=='K'&&temp_string[1]=='P'&&temp_string[2]=='J' )
		datatype=KPJ;
	else 
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: yslx error when convert pdys",END);
		return(-1);
	}
	temp_string[0]=datatype;
	temp_string[1]='\0';
	strcpy(stPDYSSMDBPoint->yslx,temp_string);
	
	stPDYSSMDBPoint->qdqa =atoi(stYSSMFilePoint.qdqa);
	stPDYSSMDBPoint->zdqa =atoi(stYSSMFilePoint.zdqa);
	if( datatype==BPZ||datatype==BPJ )
	{
		stPDYSSMDBPoint->qdqb =atoi(stYSSMFilePoint.qdqb);
		stPDYSSMDBPoint->zdqb =atoi(stYSSMFilePoint.zdqb);
	}
/*	else
	{
		stPDYSSMDBPoint->qdqb =0;
		stPDYSSMDBPoint->zdqb =0;
	}
*/	strcpy(stPDYSSMDBPoint->kq,stYSSMFilePoint.kq);
	stPDYSSMDBPoint->dingj=atof( stYSSMFilePoint.dj);
	stPDYSSMDBPoint->dyzs =atol(stYSSMFilePoint.dyzs);
	stPDYSSMDBPoint->dyk  =atof(stYSSMFilePoint.dyk);
	stPDYSSMDBPoint->lszs =atol(stYSSMFilePoint.lszs);
	stPDYSSMDBPoint->lsk  =atof(stYSSMFilePoint.lsk);
	temp_string[0]='\0';
	/* EXEC SQL SELECT to_char(sysdate,'yyyy') INTO :temp_string FROM SYS.DUAL; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 12;
 sqlstm.stmt = "select to_char(sysdate ,'yyyy') into :b0  from SYS.DUAL ";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )366;
 sqlstm.selerr = (unsigned short)1;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)temp_string;
 sqlstm.sqhstl[0] = (unsigned int  )1000;
 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();
}


	temp_string[4]='\0';

	stPDYSSMDBPoint->nf   =atoi(temp_string);

	if(stYSSMFilePoint.dsn[0]=='0')
	{
		if((atoi(temp_string)%2)!=0)
			stPDYSSMDBPoint->nf=atoi(temp_string)+1;
	}
	else
	{
		if((atoi(temp_string)%2)==0)
			stPDYSSMDBPoint->nf=atoi(temp_string)+1;
	}
	strcpy(stPDYSSMDBPoint->fsfbh,stYSSMFilePoint.fsfbh);
	strcpy(stPDYSSMDBPoint->jsfbh,stYSSMFilePoint.jsfbh);
	return(0);
}

/***  use the functions beyond to convert a string to a struct to insert to database  ***/

int ConvertPDYSSMFormat( char *cLine,char *FileName,struct stPDYSSMDBRec *stPDYSSMDB )
{
	char tempstring[100];
	char *EndFlag;
	int flag;
	int i;
	int Control;
	struct stYSSMFileRec stYSSMFile;
	int retcode=0;
	
	for(i=0;cLine[i]!='\0';i++);
	if( i!=73 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in pdyssm the length of yssm is incorrect",END);
		return(-1);
	}
	myapi_ConvertToYSSMFileRec( cLine,&stYSSMFile );
	
	flag=myapi_ConvertToPDYSSMDBRec( stYSSMFile,stPDYSSMDB,FileName );
	if( flag!=0 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in pdyssm when convert struct stYSSMFile to struct stPDYSSMDB",END);
		return(-1);
	}
	return(0);
}

/***  insert yssm struct to database  ***/

int InsertSndPDYSSM( struct stPDYSSMDBRec st,int v_fsxh )
{
	char year[SHORT_NUM];
	char datatype='2';
	short qdqa_id,qdqb_id,zdqa_id,zdqb_id,dingj_id,dyzs_id,dyk_id,lszs_id,lsk_id,nf_id;
	ERROR=0;
	
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

/*	printf(",%s,%s,%s,%d,%d,\n",st.bkdh,st.yslx,st.wjbh,st.qdqa,st.qdqb);
	printf(",%d,%d,%s,%.2f\n",st.zdqa,st.zdqb,st.kq,st.dingj);
	printf(",%ld,%.2f,%ld,%.2f,%d,%ld\n",st.dyzs,st.dyk,st.lszs,st.lsk,st.nf,v_fsxh);
*/	/* EXEC SQL INSERT INTO t_fspdyssm VALUES
		( :st.bkdh,
		  :st.yslx,
		  :st.wjbh,
		  :st.qdqa,
		  :st.qdqb :qdqb_id,
		  :st.zdqa :zdqa_id,
		  :st.zdqb :zdqb_id,
		  :st.kq,
		  :st.dingj :dingj_id,
		  :st.dyzs  :dyzs_id,
		  :st.dyk   :dyk_id,
		  :st.lszs  :lszs_id,
		  :st.lsk   :lsk_id,
		  :st.nf,
		  :v_fsxh); */ 

{
   struct sqlexd sqlstm;

   sqlstm.sqlvsn = 8;
   sqlstm.arrsiz = 15;
   sqlstm.stmt = "insert into t_fspdyssm values (:b0,:b1,:b2,:b3,:b4:b5,:b6:\
b7,:b8:b9,:b10,:b11:b12,:b13:b14,:b15:b16,:b17:b18,:b19:b20,:b21,:b22)";
   sqlstm.iters = (unsigned int  )1;
   sqlstm.offset = (unsigned int  )384;
   sqlstm.cud = sqlcud0;
   sqlstm.sqlest = (unsigned char  *)&sqlca;
   sqlstm.sqlety = (unsigned short)0;
   sqlstm.sqhstv[0] = (unsigned char  *)(st.bkdh);
   sqlstm.sqhstl[0] = (unsigned int  )8;
   sqlstm.sqindv[0] = (         short *)0;
   sqlstm.sqharm[0] = (unsigned int  )0;
   sqlstm.sqhstv[1] = (unsigned char  *)(st.yslx);
   sqlstm.sqhstl[1] = (unsigned int  )2;
   sqlstm.sqindv[1] = (         short *)0;
   sqlstm.sqharm[1] = (unsigned int  )0;
   sqlstm.sqhstv[2] = (unsigned char  *)(st.wjbh);
   sqlstm.sqhstl[2] = (unsigned int  )3;
   sqlstm.sqindv[2] = (         short *)0;
   sqlstm.sqharm[2] = (unsigned int  )0;
   sqlstm.sqhstv[3] = (unsigned char  *)&(st.qdqa);
   sqlstm.sqhstl[3] = (unsigned int  )4;
   sqlstm.sqindv[3] = (         short *)0;
   sqlstm.sqharm[3] = (unsigned int  )0;
   sqlstm.sqhstv[4] = (unsigned char  *)&(st.qdqb);
   sqlstm.sqhstl[4] = (unsigned int  )4;
   sqlstm.sqindv[4] = (         short *)&qdqb_id;
   sqlstm.sqharm[4] = (unsigned int  )0;
   sqlstm.sqhstv[5] = (unsigned char  *)&(st.zdqa);
   sqlstm.sqhstl[5] = (unsigned int  )4;
   sqlstm.sqindv[5] = (         short *)&zdqa_id;
   sqlstm.sqharm[5] = (unsigned int  )0;
   sqlstm.sqhstv[6] = (unsigned char  *)&(st.zdqb);
   sqlstm.sqhstl[6] = (unsigned int  )4;
   sqlstm.sqindv[6] = (         short *)&zdqb_id;
   sqlstm.sqharm[6] = (unsigned int  )0;
   sqlstm.sqhstv[7] = (unsigned char  *)(st.kq);
   sqlstm.sqhstl[7] = (unsigned int  )7;
   sqlstm.sqindv[7] = (         short *)0;
   sqlstm.sqharm[7] = (unsigned int  )0;
   sqlstm.sqhstv[8] = (unsigned char  *)&(st.dingj);
   sqlstm.sqhstl[8] = (unsigned int  )4;
   sqlstm.sqindv[8] = (         short *)&dingj_id;
   sqlstm.sqharm[8] = (unsigned int  )0;
   sqlstm.sqhstv[9] = (unsigned char  *)&(st.dyzs);
   sqlstm.sqhstl[9] = (unsigned int  )4;
   sqlstm.sqindv[9] = (         short *)&dyzs_id;
   sqlstm.sqharm[9] = (unsigned int  )0;
   sqlstm.sqhstv[10] = (unsigned char  *)&(st.dyk);
   sqlstm.sqhstl[10] = (unsigned int  )4;
   sqlstm.sqindv[10] = (         short *)&dyk_id;
   sqlstm.sqharm[10] = (unsigned int  )0;
   sqlstm.sqhstv[11] = (unsigned char  *)&(st.lszs);
   sqlstm.sqhstl[11] = (unsigned int  )4;
   sqlstm.sqindv[11] = (         short *)&lszs_id;
   sqlstm.sqharm[11] = (unsigned int  )0;
   sqlstm.sqhstv[12] = (unsigned char  *)&(st.lsk);
   sqlstm.sqhstl[12] = (unsigned int  )4;
   sqlstm.sqindv[12] = (         short *)&lsk_id;
   sqlstm.sqharm[12] = (unsigned int  )0;
   sqlstm.sqhstv[13] = (unsigned char  *)&(st.nf);
   sqlstm.sqhstl[13] = (unsigned int  )4;
   sqlstm.sqindv[13] = (         short *)0;
   sqlstm.sqharm[13] = (unsigned int  )0;
   sqlstm.sqhstv[14] = (unsigned char  *)&v_fsxh;
   sqlstm.sqhstl[14] = (unsigned int  )4;
   sqlstm.sqindv[14] = (         short *)0;
   sqlstm.sqharm[14] = (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);
}

/***  insert yssj to database  ***/

int InsertSndPDYS(struct stPDYSDBRec PDDBRec)
{
	short lszjfs_id;
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

	/* EXEC SQL INSERT INTO t_fspdyssj (zjfs,zfjbh,fsxh) VALUES 
		(:PDDBRec.zjfs,
/o		 :PDDBRec.lszjfs :lszjfs_id,
o/		 :PDDBRec.zfjbh,
		 :PDDBRec.xh); */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 15;
 sqlstm.stmt = "insert into t_fspdyssj(zjfs,zfjbh,fsxh) values (:b0,:b1,:b2)";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )458;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)&(PDDBRec.zjfs);
 sqlstm.sqhstl[0] = (unsigned int  )4;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)(PDDBRec.zfjbh);
 sqlstm.sqhstl[1] = (unsigned int  )9;
 sqlstm.sqindv[1] = (         short *)0;
 sqlstm.sqharm[1] = (unsigned int  )0;
 sqlstm.sqhstv[2] = (unsigned char  *)&(PDDBRec.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+=PDDBRec.zjfs;
	return(0);
}

/***  insert a record of yssm and yssj into database  ***/

int RecDBSinglePDYS( struct stPDYSSMDBRec PDYSSMDBRec,char *Filename,long int v_fsxh,char *cLine )
{
	int flag;
	char tempstring[100];
	char datatype='2';
	char Zzfj[MID_NUM][SHORT_NUM];
	struct stPDYSDBRec PDDBRec;
	int i,j,k;
	int zfCount;
	char wjbh[SHORT_NUM];
	int retcode=0;
	
	flag=CreateSndLogAndHZRec( datatype,PDYSSMDBRec.jsfbh,v_fsxh );
	if( flag!=1 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when use function ","CreateSndLogAndHZRec");
		return(-1);
	}
	
	flag=InsertSndPDYSSM( PDYSSMDBRec, v_fsxh );/**/
	if( flag!=0 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when insert pdyssm into database",END);
		return(-1);
	}

	for( i=0,j=0;i<STR_LEN;i++ )
	{
		for( k=0;k<SHORT_NUM;j++,k++ )	/**  get zfjbh  **/
		{
			if( cLine[j]==',' )
			{
				ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in pdyssj, ',' 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';
		PDDBRec.xh=v_fsxh;
		strcpy(PDDBRec.zfjbh,tempstring);
		
		for( k=0;k<SHORT_NUM;j++,k++ )	/**  get yffs  **/
		{
			if( cLine[j]==',' )
			{
				ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in pdyssj, ',' connected with another ','",END);
				return(-1);
			}
			if( cLine[j]=='\n'||cLine[j]==EOF )	/**  need yffs but without  **/
			{
				ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in pdyssj, 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';
		
		PDDBRec.zjfs=atoi(tempstring);
		PDDBRec.lszjfs=0;
		flag=InsertSndPDYS( PDDBRec );
		if( flag!=0 )
		{
			ProcessError(LOG_ERROR,"PCS_Snd_YS1: error when use function ","InsertSndPDYS");
			return(-1);
		}
		if( cLine[j]=='\0'||cLine[j]==EOF )
		{
			return(0);
		}
		
	}
	return(0);
}


/*
//Process PDYS data convert, put them into DB, send the data
//The divided character is ','
*/
int ConvRecDBPDYS( char *cLine,struct stPDYSSMDBRec PDYSSMDB,char *buf2,char *Filename,int *n )
{
	int flag,i,j;
	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 = 15;
 sqlstm.stmt = "select s_fsxh.nextval  into :b0  from SYS.DUAL ";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )484;
 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=RecDBSinglePDYS( PDYSSMDB, 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);
}


/*  get filename from input path/filename  */
/*  the target is trim the path from input */
void trimpath( char *string,char *filename )
{
	int len;
	int i,k;
	filename[0]='\0';
	len=strlen(string);
	for( i=len ; i>=0 ; i-- )
		if( string[i]=='/' )
			break;
	if( i==0 )
		strcpy(filename,string);
	else
	{	
		for( k=0 ; k<len-i ; k++ )
			filename[k]=string[i+k+1];
	}
}

⌨️ 快捷键说明

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