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

📄 ys1api.c

📁 unix 下用pro*c tuxedo 开发的东西
💻 C
📖 第 1 页 / 共 4 页
字号:
{
	int i=0;
	cLine[0] = '\0';
	while( FileLength[*j] !='\n')
	{
		if( FileLength[*j] == EOF ) 
		return(0);
		cLine[i++] = FileLength[(*j)++];
		
		/* truncated if superlong */
		if( i >= MAX_LINE_LEN ) i=0;
		cLine[i] = '\0';	/* define the end of a string */
	}
	(*j)++;
	return(1);
}

/* change the int varible to the string */
void itoa(long The_int_data, char* The_out_string, int j)
{
	char exch_str[12];
	char a;
	int i=0, n, the_mod;
	The_out_string[0]='\0';
	
	/* if the int varible is zero, then ...*/
	if (The_int_data==0)
	{
		exch_str[0]='0';
		exch_str[1]='\0';
		
		
		strcat( The_out_string, exch_str);
		for(n=1;n<j-1;n++)
		The_out_string[n]=' ';
		The_out_string[n]='\0';
		return;
	}
	
	
	while(1)
	{
		
		the_mod = The_int_data%10;
		exch_str[i] = (char )(the_mod+48);
		exch_str[i+1] = '\0';
		i++;
		
		/* change the last digit to char */
		if((The_int_data = (The_int_data/10))<10) 
		{
			exch_str[i] = (char)(The_int_data+48);
			exch_str[i+1] = '\0';
			break;
		}

	}
	
	/* overtrun the order */
	for(n=0;n<=i;n++)
	The_out_string[n] = exch_str[i-n];
	for(n=i+1;n<j-1;n++)
	The_out_string[n]=' ';
	The_out_string[n]='\0';
	
	
}

/*	Convert a String contents into a stYSSMFileRec struct,	*/
/*	Return 0 if sucessful				*/
/*	Return -1 if the line is not a legal one.			*/
int myapi_ConvertToYSSMFileRec(char *cALine,struct stYSSMFileRec *stYSSMFilePoint)
{
	myapi_ReadString(cALine,stYSSMFilePoint->bkdh,0,5);
	trim(stYSSMFilePoint->bkdh);
	myapi_ReadString(cALine,stYSSMFilePoint->jsfbh,6,7);
	trim(stYSSMFilePoint->jsfbh);
	myapi_ReadString(cALine,stYSSMFilePoint->fsfbh,8,9);
	trim(stYSSMFilePoint->fsfbh);
	myapi_ReadString(cALine,stYSSMFilePoint->qdqa,10,11);
	trim(stYSSMFilePoint->qdqa);
	myapi_ReadString(cALine,stYSSMFilePoint->qdqb,12,13);
	trim(stYSSMFilePoint->qdqb);
	myapi_ReadString(cALine,stYSSMFilePoint->zdqa,14,15);
	trim(stYSSMFilePoint->zdqa);
	myapi_ReadString(cALine,stYSSMFilePoint->zdqb,16,17);
	trim(stYSSMFilePoint->zdqb);
	myapi_ReadString(cALine,stYSSMFilePoint->kq,18,23);
	trim(stYSSMFilePoint->kq);
	myapi_ReadString(cALine,stYSSMFilePoint->dj,24,29);
	trim(stYSSMFilePoint->dj);
	myapi_ReadString(cALine,stYSSMFilePoint->dyzs,30,39);
	trim(stYSSMFilePoint->dyzs);
	myapi_ReadString(cALine,stYSSMFilePoint->dyk,40,50);
	trim(stYSSMFilePoint->dyk);
	myapi_ReadString(cALine,stYSSMFilePoint->lszs,51,60);
	trim(stYSSMFilePoint->lszs);
	myapi_ReadString(cALine,stYSSMFilePoint->lsk,61,71);
	trim(stYSSMFilePoint->lsk);
	myapi_ReadString(cALine,stYSSMFilePoint->dsn,72,72);
	trim(stYSSMFilePoint->dsn);
	return(0);
}

/*Fill in the struct stZDYSSMDBRec 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_ConvertToZDYSSMDBRec(struct stYSSMFileRec *stYSSMFilePoint,struct stZDYSSMDBRec *stZDYSSMDBPoint,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(stZDYSSMDBPoint->wjbh,temp_string);
	strcpy(stZDYSSMDBPoint->bkdh,stYSSMFilePoint->bkdh);
	myapi_ReadString(FileName,temp_string,0,3);
	if( temp_string[0]=='B'&&temp_string[1]=='Z'&&temp_string[2]=='Z' )
		datatype=ZZ;
	else if(temp_string[0]=='K'&&temp_string[1]=='Z'&&temp_string[2]=='Z' )
		datatype=KZZ;
	else if(temp_string[0]=='B'&&temp_string[1]=='Z'&&temp_string[2]=='J' )
		datatype=ZJ;
	else if(temp_string[0]=='K'&&temp_string[1]=='Z'&&temp_string[2]=='J' )
		datatype=KZJ;
	else
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: yslx error when convert zdys",END);
		return(-1);
	}
	temp_string[0]=datatype;
	temp_string[1]='\0';
	strcpy(stZDYSSMDBPoint->yslx,temp_string);
	
	stZDYSSMDBPoint->qdqa =atoi(stYSSMFilePoint->qdqa);
	strcpy(stZDYSSMDBPoint->kq,stYSSMFilePoint->kq);
	stZDYSSMDBPoint->dingj=atof( stYSSMFilePoint-> dj);
	stZDYSSMDBPoint->dyzs =atol(stYSSMFilePoint-> dyzs);
	stZDYSSMDBPoint->dyk  =atof(stYSSMFilePoint-> dyk);
	stZDYSSMDBPoint->lszs =atol(stYSSMFilePoint-> lszs);
	stZDYSSMDBPoint->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 = 3;
 sqlstm.stmt = "select to_char(sysdate ,'yyyy') into :b0  from SYS.DUAL ";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )84;
 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';
	
	stZDYSSMDBPoint->nf=atoi(temp_string);

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

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

int ConvertZDYSSMFormat( char *cLine,char *FileName,struct stZDYSSMDBRec *stZDYSSMDB )
{
	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 zdyssm the length of yssm is incorrect",END);
		return(-1);
	}
	
	myapi_ConvertToYSSMFileRec( cLine,&stYSSMFile );
	
	flag=myapi_ConvertToZDYSSMDBRec( &stYSSMFile,stZDYSSMDB,FileName );
	if( flag!=0 )
	{
		ProcessError(LOG_ERROR,"PCS_Snd_YS1: error in zdyssm when convert struct stYSSMFile to struct stZDYSSMDB",END);
		return(-1);
	}
	return(0);
}

/************** insert a record into the t_fsrz and t_hz table ****************/
int CreateSndLogAndHZRec(char datatype, char *snd_province_code ,long int lg_Key )
{
	int i;
	char as_convert[3];
	char hzzt='1';
	char bz[]="";
		
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

	/* EXEC SQL INSERT INTO T_FSRZ VALUES (:lg_Key, :datatype, '1', SYSDATE ); */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 3;
 sqlstm.stmt = "insert into T_FSRZ values (:b0,:b1,'1',sysdate )";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )102;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)&lg_Key;
 sqlstm.sqhstl[0] = (unsigned int  )4;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)&datatype;
 sqlstm.sqhstl[1] = (unsigned int  )1;
 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( ERROR!=0 )
	{
		ERROR=0;
		return(-1);
	}
#ifdef DEBUG
	printf("xh%ld,dt%c,sbh%s,bz%s,pc%d\n",lg_Key,datatype,snd_province_code,bz,YS_PC_INT);
#endif
	/* EXEC SQL INSERT INTO T_HZ VALUES (SYSDATE, :snd_province_code, :hzzt, :lg_Key, :bz, :YS_PC_INT); */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 5;
 sqlstm.stmt = "insert into T_HZ values (sysdate ,:b0,:b1,:b2,:b3,:b4)";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )124;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)snd_province_code;
 sqlstm.sqhstl[0] = (unsigned int  )0;
 sqlstm.sqindv[0] = (         short *)0;
 sqlstm.sqharm[0] = (unsigned int  )0;
 sqlstm.sqhstv[1] = (unsigned char  *)&hzzt;
 sqlstm.sqhstl[1] = (unsigned int  )1;
 sqlstm.sqindv[1] = (         short *)0;
 sqlstm.sqharm[1] = (unsigned int  )0;
 sqlstm.sqhstv[2] = (unsigned char  *)&lg_Key;
 sqlstm.sqhstl[2] = (unsigned int  )4;
 sqlstm.sqindv[2] = (         short *)0;
 sqlstm.sqharm[2] = (unsigned int  )0;
 sqlstm.sqhstv[3] = (unsigned char  *)bz;
 sqlstm.sqhstl[3] = (unsigned int  )0;
 sqlstm.sqindv[3] = (         short *)0;
 sqlstm.sqharm[3] = (unsigned int  )0;
 sqlstm.sqhstv[4] = (unsigned char  *)&YS_PC_INT;
 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) sqlerror();
}


	if( ERROR!=0 )
	{
		ERROR=0;
		return(-1);
	}
	tmp_fsxh=lg_Key;
	return(1);
}

/* update the table to locate the relative flag */
int UpdateSndLogRecStatus( long int lg_Key )
{
	char temp='2';
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

	/* EXEC SQL UPDATE T_FSRZ SET SJZT=:temp, JSSJ = SYSDATE WHERE FSXH=:lg_Key; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 5;
 sqlstm.stmt = "update T_FSRZ  set SJZT=:b0,JSSJ=sysdate  where FSXH=:b1";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )158;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlstm.sqhstv[0] = (unsigned char  *)&temp;
 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();
}


	if( ERROR!=0 )
	{
		ERROR=0;
		return(-1);
	}
	return(1);
}

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

int InsertSndZDYSSM( struct stZDYSSMDBRec st,int v_fsxh )
{
	char year[SHORT_NUM];
	short qdqa_id,dingj_id,dyzs_id,dyk_id,lszs_id,lsk_id,nf_id;
	ERROR=0;
	/* EXEC SQL WHENEVER SQLERROR DO sqlerror(); */ 

	/* EXEC SQL INSERT INTO t_fszdyssm VALUES
		( :st.bkdh,
		  :st.yslx,
		  :st.wjbh,
		  :st.qdqa :qdqa_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    :nf_id,
		  :v_fsxh); */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 12;
 sqlstm.stmt = "insert into t_fszdyssm values (:b0,:b1,:b2,:b3:b4,:b5,:b6:b7\
,:b8:b9,:b10:b11,:b12:b13,:b14:b15,:b16:b17,:b18)";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )180;
 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 *)&qdqa_id;
 sqlstm.sqharm[3] = (unsigned int  )0;
 sqlstm.sqhstv[4] = (unsigned char  *)(st.kq);
 sqlstm.sqhstl[4] = (unsigned int  )7;
 sqlstm.sqindv[4] = (         short *)0;
 sqlstm.sqharm[4] = (unsigned int  )0;
 sqlstm.sqhstv[5] = (unsigned char  *)&(st.dingj);
 sqlstm.sqhstl[5] = (unsigned int  )4;
 sqlstm.sqindv[5] = (         short *)&dingj_id;
 sqlstm.sqharm[5] = (unsigned int  )0;
 sqlstm.sqhstv[6] = (unsigned char  *)&(st.dyzs);
 sqlstm.sqhstl[6] = (unsigned int  )4;
 sqlstm.sqindv[6] = (         short *)&dyzs_id;
 sqlstm.sqharm[6] = (unsigned int  )0;
 sqlstm.sqhstv[7] = (unsigned char  *)&(st.dyk);
 sqlstm.sqhstl[7] = (unsigned int  )4;
 sqlstm.sqindv[7] = (         short *)&dyk_id;
 sqlstm.sqharm[7] = (unsigned int  )0;
 sqlstm.sqhstv[8] = (unsigned char  *)&(st.lszs);
 sqlstm.sqhstl[8] = (unsigned int  )4;
 sqlstm.sqindv[8] = (         short *)&lszs_id;
 sqlstm.sqharm[8] = (unsigned int  )0;
 sqlstm.sqhstv[9] = (unsigned char  *)&(st.lsk);
 sqlstm.sqhstl[9] = (unsigned int  )4;

⌨️ 快捷键说明

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