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

📄 convapi.pc

📁 unix 下用pro*c tuxedo 开发的东西
💻 PC
📖 第 1 页 / 共 4 页
字号:
	free(messagebkml);

	EXEC SQL CLOSE cur_bkml;

	fclose(h_bkml);

	UpdateJSRZ_cved(key,sjbh);

	return(0);

}



int CallConvertZFJ( long int key,char *sjbh )

{

	char tempstr[MID_LEN];

	char string[SHORT_LEN];

	char zfjbh[SHORT_LEN];

	char zfjmc[MID_LEN];

	int i,retcode=0,COUNT;

	int tempnum,rec_count;

	struct stZFJBDBRec ZFJDB;

	char c1,c2;
	char fbkjbh[3];
	char temp[2*MID_LEN],filename[MID_LEN],fbkj_path_name[MID_LEN];
	int  tmp_fbkjbh,fbkj_wjbh;
	FILE *f_tmp_fbkj;
	c1='0';
	c2='3';

	

/*	EXEC SQL SELECT count(*) INTO :COUNT FROM t_jszfjb WHERE jsxh=:key;

	EXEC SQL DECLARE cursor_ZFJ CURSOR FOR

		SELECT nf,sjbh FROM t_jszfjb WHERE jsxh=:key;

	EXEC SQL OPEN cursor_ZFJ;

    for( ; COUNT>0 ; COUNT-- )

    {

    	EXEC SQL FETCH cursor_ZFJ INTO :ZFJDB.nf, :ZFJDB.sjbh;

*/    	

     	

	EXEC SQL SELECT nf INTO :ZFJDB.nf FROM t_jszfjb WHERE jsxh=:key AND sjbh=:sjbh;

    	

	/* get gh filename */

	tempstr[0]='\0';

	strcpy(tempstr,YWJ_PATH);

	strcat(tempstr,"ZFJB");

	strcat(tempstr,".");

	strcat(tempstr,sjbh);

	if( (ZFJDB.nf)%2==1 )

		strcpy(string,"1");

	else

		strcpy(string,"0");

	strcat(tempstr,string);

	

	h_zfj=fopen(tempstr,"w");

	if( h_zfj == NULL )

	{

		ProcessError(LOG_ERROR,"PCS_Convert_File: cannot open ",tempstr);

		return(-1);

	}

	EXEC SQL DECLARE cur_zfj CURSOR FOR 

		SELECT zfjbh,zfjmc FROM t_jszfjbnr WHERE sjbh=:sjbh AND jsxh=:key ORDER BY zfjxh;

	EXEC SQL OPEN cur_zfj;

	zfjbh[0]='\0';

	zfjmc[0]='\0';

	EXEC SQL SELECT count(*) INTO :tempnum FROM t_jszfjbnr WHERE sjbh=:sjbh AND jsxh=:key;

	for( i=0;i<tempnum;i++ )

	{

		EXEC SQL WHENEVER SQLERROR DO sqlerror();

		EXEC SQL FETCH cur_zfj INTO :zfjbh,:zfjmc;

		if( ERROR!=0 )

		{

			ERROR=0;

			return(-1);

		}

		trim(zfjbh);
		trim(zfjmc);
		

		fputs(zfjbh,h_zfj);

		fputs("," , h_zfj);

		fputs(zfjmc,h_zfj);

		fputs("," , h_zfj);

		fputs("\n", h_zfj);

	}

  	fclose(h_zfj);

	UpdateJSRZ_cved(key,sjbh);

	EXEC SQL CLOSE cur_zfj;




	EXEC SQL SELECT count(*) INTO :rec_count FROM t_fbkj WHERE jsfs IN (:c1,:c2);

	EXEC SQL DECLARE cur_fbkjzfj CURSOR FOR 

		SELECT fbkjbh FROM t_fbkj WHERE jsfs IN (:c1,:c2);

	EXEC SQL OPEN cur_fbkjzfj;

	

	fbkjbh[0]='\0';

	for( ;rec_count>0;rec_count-- )

	{

		EXEC SQL FETCH cur_fbkjzfj INTO :fbkjbh;

		trim(fbkjbh);

		tmp_fbkjbh=atoi(fbkjbh);
		strcpy(temp,FBKJ_PATH);

		strcat(temp,fbkjbh);

		strcat(temp,"/jsfile");
		sprintf( fbkj_path_name, "%s.%d", temp, val_fbkj[ tmp_fbkjbh ] );
		f_tmp_fbkj=fopen(fbkj_path_name,"r");
		if ( f_tmp_fbkj==NULL )
		{
			EXEC SQL SELECT S_FBKJ_WJBH.NEXTVAL INTO :fbkj_wjbh FROM SYS.DUAL;
			val_fbkj[ tmp_fbkjbh ]=fbkj_wjbh;
			sprintf( fbkj_path_name, "%s.%d", temp, val_fbkj[ tmp_fbkjbh ] );
		}
		trimpath(tempstr,filename);
		sprintf(temp,"echo %s >> %s","XXXX6",fbkj_path_name);
		system(temp);
		sprintf(temp,"echo %s >> %s",filename,fbkj_path_name);
		system(temp);
		sprintf(temp,"cat %s >> %s",tempstr,fbkj_path_name);
		system(temp);
		sprintf(temp,"echo %s >> %s","XXXX0",fbkj_path_name);
		system(temp);
	}
	EXEC SQL CLOSE cur_fbkjzfj;

     return(0);

}



int CallConvertYX( long int key,char *sjbh )

{

	char tempstr[MID_LEN];

	char tempstring[MID_LEN];

	char string[SHORT_LEN];

	int i,flag,T_zh,T_zzh;

	int tempnum;

	struct stYXMsg YXMsg;

	struct stYXSJ  YXSJ;

	

	ERROR=0;

	EXEC SQL WHENEVER SQLERROR DO sqlerror();

	EXEC SQL VAR YXMsg.yxnr IS string;

	EXEC SQL SELECT * INTO :YXSJ FROM t_jsyxsj WHERE jsxh=:key AND sjbh=:sjbh;

	if( ERROR!=0 )

	{

		ERROR=0;

		return(-1);

	}

	

	/* get yx filename */

	

	tempstring[0]='\0';

	strcpy(tempstring,TMP_PATH);

	strcpy(tempstring,"YX");

	strcat(tempstring,YXSJ.yxxl);

	strcat(tempstring,YXSJ.sjbh);

	strcat(tempstring,".");

	strcat(tempstring,YXSJ.wjbh);

	

	h_yx=fopen(tempstring,"w");

	if( h_yx==NULL )

	{

		ProcessError(LOG_ERROR,"PCS_Convert_File: error cannot open ",tempstring);

		return(-1);

	}

	

	EXEC SQL DECLARE cur_yx CURSOR FOR 

		SELECT zcjssj,zh,zzh FROM t_zcjssj 

		WHERE jsxh=:key	ORDER BY zh;

	EXEC SQL OPEN cur_yx;

	i=0;

	while(1)

	{

		ERROR=0;

		T_zh=0;

		T_zzh=0;

		EXEC SQL VAR YXMsg.yxnr IS STRING;

		EXEC SQL WHENEVER SQLERROR DO sqlerror();

		EXEC SQL FETCH cur_yx INTO :YXMsg.yxnr,:T_zh,:T_zzh;

		if( ERROR!=0 )

		{

			ERROR=0;

			EXEC SQL CLOSE cur_yx;

			fclose(h_yx);

			return(-1);

		}

#ifdef DEBUG
printf("yxlen is %ld\n",strlen(YXMsg.yxnr));
#endif
		if( i==0 )

		{

			EXEC SQL SELECT count(*) INTO :tempnum FROM t_zcjssj

				WHERE jsxh=:key;

			if( tempnum != T_zzh )

			{

				ProcessError(LOG_ERROR,"PCS_Convert_File: zcjssj may incomplete",END);

				EXEC SQL CLOSE cur_yx;

				fclose(h_yx);

				return( CONTNOTBREAK );

			}

		}

		fputs( YXMsg.yxnr,h_yx);


		if( T_zzh==(i+1) ) break;
		i++;

	}

	tempstr[0]='\0';

	strcpy(tempstr,"mv ");

	strcat(tempstr,tempstring);

	strcat(tempstr," ");

	strcat(tempstr,YXMSG_PATH);

	strcat(tempstr,tempstring);

	system(tempstr);

	

	UpdateJSRZ_cved( key,sjbh );

	EXEC SQL CLOSE cur_yx;

	fclose(h_yx);

	EXEC SQL DELETE FROM t_zcjssj WHERE jsxh=:key;

	return(0);

}



int UpdateJSRZ_cved( long int lg_key,char *sjbh )

{

	char temp=CONVERTED;

	EXEC SQL WHENEVER SQLERROR DO sqlerror();

	EXEC SQL UPDATE T_JSRZ SET SJZT=:temp WHERE JSXH=:lg_key AND sjbh=:sjbh;

	if( ERROR!=0 )

	{

		ERROR=0;

		return(-1);

	}

	EXEC SQL COMMIT WORK;

	return(1);

}



int createdir(void)

{

	char fbkjbh[SHORT_LEN];

	char temp[MID_LEN];

	char c1[]="0";

	char c2[]="3";

	int  rec_count;

	EXEC SQL SELECT count(*) INTO :rec_count FROM t_fbkj WHERE jsfs IN (:c1,:c2);

	EXEC SQL DECLARE cur_fbkj CURSOR FOR 

		SELECT fbkjbh FROM t_fbkj WHERE jsfs IN (:c1,:c2);

	EXEC SQL OPEN cur_fbkj;

	

	fbkjbh[0]='\0';

	for( ;rec_count>0;rec_count-- )

	{

		EXEC SQL FETCH cur_fbkj INTO :fbkjbh;

		trim(fbkjbh);

		strcpy(temp,"mkdir ");

		strcat(temp,FBKJ_PATH);

		strcat(temp,fbkjbh);

		system(temp);

		strcpy(temp,"mkdir ");

		strcat(temp,FBKJ_PATH);

		strcat(temp,fbkjbh);

		strcat(temp,"/bak");

		system(temp);

	}

	EXEC SQL CLOSE cur_fbkj;

	return(0);

}


void PutBag()
{
	char tmpstr[10],temp[200],err_sys[200],fbkj_path_name[100];
	char var_YSSM[10],var_YSSJ[10],var_ERR[10];
	char fbkjbh[3];
	int  rec_count,i,k,m,cont_round,length;

	char c1,c2;
	int tmp_fbkjbh;
	int fbkj_wjbh;
	FILE *f_tmp_fbkj;

	c1='0';
	c2='3';

	EXEC SQL SELECT count(*) INTO :rec_count FROM t_fbkj WHERE jsfs IN (:c1,:c2);

	EXEC SQL DECLARE cur_fbkjsm CURSOR FOR 

		SELECT fbkjbh FROM t_fbkj WHERE jsfs IN (:c1,:c2);

	EXEC SQL OPEN cur_fbkjsm;

	

	fbkjbh[0]='\0';

	for( ;rec_count>0;rec_count-- )

	{

		EXEC SQL FETCH cur_fbkjsm INTO :fbkjbh;

		trim(fbkjbh);


		i=0;
		
	    for( cont_round=0;cont_round<8;cont_round++)
	    {
		switch(cont_round)
		{
			case 0:
				strcpy(var_YSSM,"BZZY");
				strcpy(var_YSSJ,"BZZ");
				strcpy(var_ERR,"BZZY_ERR");
				break;
			case 1:
				strcpy(var_YSSM,"BZJY");
				strcpy(var_YSSJ,"BZJ");
				strcpy(var_ERR,"BZJY_ERR");
				break;
			case 2:
				strcpy(var_YSSM,"BPZY");
				strcpy(var_YSSJ,"BPZ");
				strcpy(var_ERR,"BPZY_ERR");
				break;
			case 3:
				strcpy(var_YSSM,"BPJY");
				strcpy(var_YSSJ,"BPJ");
				strcpy(var_ERR,"BPJY_ERR");
				break;
			case 4:
				strcpy(var_YSSM,"KZZY");
				strcpy(var_YSSJ,"KZZ");
				strcpy(var_ERR,"KZZY_ERR");
				break;
			case 5:
				strcpy(var_YSSM,"KZJY");
				strcpy(var_YSSJ,"KZJ");
				strcpy(var_ERR,"KZJY_ERR");
				break;
			case 6:
				strcpy(var_YSSM,"KPZY");
				strcpy(var_YSSJ,"KPZ");
				strcpy(var_ERR,"KPZY_ERR");
				break;
			case 7:
				strcpy(var_YSSM,"KPJY");
				strcpy(var_YSSJ,"KPJ");
				strcpy(var_ERR,"KPJY_ERR");
				break;
			default:	break;

		}

		sprintf(temp,"%s%s%s%s",FBKJ_PATH,fbkjbh,"/bak/",var_YSSM);
		h_sm=fopen(temp,"r");
		sprintf(temp,"%s%s%s%s",FBKJ_PATH,fbkjbh,"/bak/",var_YSSJ);
		h_sj=fopen(temp,"r");

		if( h_sm!=NULL && h_sj!=NULL )
		{
			fseek(h_sm,0,2);
			length=ftell(h_sm);
			i=length/74;
			buf=(char *) malloc ( length+1 );
			fseek(h_sm,0,0);
			fread(buf,sizeof(char),length,h_sm);
			buf[length]='\0';

			fseek(h_sj,0,2);
			length=ftell(h_sj);
			buf_sj=(char *) malloc( length+1 );
			fseek(h_sj,0,0);
			fread(buf_sj,sizeof(char),length,h_sj);
			buf_sj[length]='\0';
			for ( k=0,m=0 ; ; m++ )
			{
				if( buf_sj[m]=='\0') break;
				else if( (buf_sj[m]=='Z'&&buf_sj[m+1]=='Z') ) k++;
				else if( (buf_sj[m]=='Z'&&buf_sj[m+1]=='J') ) k++;
				else if( (buf_sj[m]=='P'&&buf_sj[m+1]=='Z') ) k++;
				else if( (buf_sj[m]=='P'&&buf_sj[m+1]=='J') ) k++;
			}
			if( k!= i )
			{
				free(buf);
				free(buf_sj);
				fclose(h_sm);
				fclose(h_sj);
				fclose(h_bag);
				
				sprintf(err_sys,"%s%s%s%s",FBKJ_PATH,fbkjbh,"/bak/",var_ERR);
				ProcessError(LOG_ERROR,"PCS_CONVERT_FILE: please check the file",err_sys);
				sprintf(err_sys,"cat %s%s%s%s %s%s%s%s >> %s%s%s%s",FBKJ_PATH,fbkjbh,"/bak/",var_YSSM,FBKJ_PATH,fbkjbh,"/bak/",var_YSSJ,FBKJ_PATH,fbkjbh,"/bak/",var_ERR);
				system(err_sys);
				sprintf(err_sys,"rm %s%s%s%s %s%s%s%s",FBKJ_PATH,fbkjbh,"/bak/",var_YSSM,FBKJ_PATH,fbkjbh,"/bak/",var_YSSJ);
				system(err_sys);
				return;
			}

			strcpy(temp,FBKJ_PATH);

			strcat(temp,fbkjbh);

			tmp_fbkjbh=atoi(fbkjbh);
			strcat(temp,"/jsfile");
			sprintf( fbkj_path_name, "%s.%d", temp, val_fbkj[ tmp_fbkjbh ] );
			f_tmp_fbkj=fopen(fbkj_path_name,"r");
			if ( f_tmp_fbkj==NULL )
			{
				EXEC SQL SELECT S_FBKJ_WJBH.NEXTVAL INTO :fbkj_wjbh FROM SYS.DUAL;
				val_fbkj[ tmp_fbkjbh ]=fbkj_wjbh;
				sprintf( fbkj_path_name, "%s.%d", temp, val_fbkj[ tmp_fbkjbh ] );
			}

			sprintf(err_sys,"chmod 640 %s",fbkj_path_name);
			system(err_sys);

			h_bag=fopen(fbkj_path_name,"a");

			if( h_bag == NULL )

				return;
			fputs("XXXX1\n",h_bag);
			fputs(var_YSSM,h_bag);
			fputs("\n",h_bag);
			fputs(buf,h_bag);
			fputs("X0X0\n",h_bag);
			fputs(buf_sj,h_bag);
			fputs("XXXX0\n",h_bag);
	
			fclose(h_bag);

			sprintf(err_sys,"chmod 646 %s",fbkj_path_name);
			system(err_sys);

			free(buf);
			free(buf_sj);
			fclose(h_sm);
			fclose(h_sj);
			sprintf(temp,"rm %s%s%s%s %s%s%s%s",FBKJ_PATH,fbkjbh,"/bak/",var_YSSM,FBKJ_PATH,fbkjbh,"/bak/",var_YSSJ);
			system(temp);
		}
			
	    }

	}

	EXEC SQL CLOSE cur_fbkjsm;

	return;

}

/*  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];
	}
}

/* init the val_fbkj_wjbh , give them the nextval of sequence */

void init_fbkj_wjbh()
{
	int fbkj_wjbh,i;
	EXEC SQL SELECT S_FBKJ_WJBH.NEXTVAL INTO :fbkj_wjbh FROM SYS.DUAL;
	exec sql select count(*) into :g_fbkj_count from t_fbkj;
	for(i=0;i<100;i++)
	{
		val_fbkj[i]=fbkj_wjbh;
	}
	return;

}










⌨️ 快捷键说明

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