📄 convapi.pc
字号:
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 + -