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

📄 pcsrestoreapi.c

📁 unix 下用pro*c tuxedo 开发的东西
💻 C
📖 第 1 页 / 共 3 页
字号:
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )462;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				/* EXEC SQL DELETE FROM t_jspdyssm
				    WHERE  JSXH = :l_jsxh; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "delete  from t_jspdyssm  where JSXH=:b0";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )480;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				break;
			case SJFL_BKML:
				printf("Delete BKML record.\n");
				printf("JSXH=%li  SJFL=%i\n", l_jsxh, c_sjfl);
				/* EXEC SQL DELETE FROM t_jsbkhzmlnr
				    WHERE  JSXH = :l_jsxh; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "delete  from t_jsbkhzmlnr  where JSXH=:b0";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )498;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				/* EXEC SQL DELETE FROM t_jsbkhzml
				    WHERE  JSXH = :l_jsxh; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "delete  from t_jsbkhzml  where JSXH=:b0";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )516;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				break;
			case SJFL_ZFJ:
				printf("Delete ZFJ record.\n");
				/* EXEC SQL DELETE FROM t_jszfjbnr
				    WHERE  JSXH = :l_jsxh; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "delete  from t_jszfjbnr  where JSXH=:b0";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )534;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				/* EXEC SQL DELETE FROM t_jszfjb
				    WHERE  JSXH = :l_jsxh; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "delete  from t_jszfjb  where JSXH=:b0";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )552;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				break;
			case SJFL_GH:
				printf("Delete GH record.\n");
				/* EXEC SQL DELETE FROM t_jsgh
				    WHERE  JSXH = :l_jsxh; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "delete  from t_jsgh  where JSXH=:b0";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )570;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				break;
			case SJFL_YX:
				printf("Delete YX record.\n");
				/* EXEC SQL DELETE FROM t_jsyxsj
				    WHERE  JSXH = :l_jsxh; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "delete  from t_jsyxsj  where JSXH=:b0";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )588;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				/* EXEC SQL DELETE FROM t_zcjssj
				    WHERE  JSXH = :l_jsxh; */ 

{
    struct sqlexd sqlstm;

    sqlstm.sqlvsn = 8;
    sqlstm.arrsiz = 3;
    sqlstm.stmt = "delete  from t_zcjssj  where JSXH=:b0";
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )606;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)0;
    sqlstm.sqhstv[0] = (unsigned char  *)&l_jsxh;
    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 == 1403) break;
    if (sqlca.sqlcode < 0) sqlerror();
}


				break;
			default:
				break;
		}
	}
	
	/* EXEC SQL CLOSE jsrz_cursor; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 3;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )624;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
 if (sqlca.sqlcode < 0) sqlerror();
}


	/* EXEC SQL WHENEVER NOT FOUND CONTINUE; */ 

	/* EXEC SQL DELETE FROM t_jsrz WHERE SJZT=1; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 3;
 sqlstm.stmt = "delete  from t_jsrz  where SJZT=1";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )638;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
 if (sqlca.sqlcode < 0) sqlerror();
}


	printf("everything is ok.\n");
	/* EXEC SQL COMMIT WORK RELEASE; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 3;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )652;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
 if (sqlca.sqlcode < 0) sqlerror();
}


	
	return(0);
	
}


/*
 *Process individual files in temp directory from crash
 */
int RestoreIndividualFiles()
{
	char cCommand[300];
	FILE* hFileList;
	char cThisLine[MAX_LINE_LEN+1], cThisItem[MAX_LINE_LEN+1];
	char* pThisLine;
	
	sprintf( cCommand, "ls %s > ./filelist", TEMP_DIR );
	system( cCommand );
	if( GetFileSize( "filelist" ) == 0 )
		return(0);
	
	hFileList = fopen( "filelist", "r" );
	if( hFileList == NULL )
	{
		ErrorLog("PCSRestore: RestoreIndividualFiles- Open file error while restoring--\"filelist\"\n");
		return(-1);
	}
	
	while( myapi_ReadALine( cThisLine, hFileList ) )
	{
		strcpy( cThisItem, cThisLine );
		if( !strncmp( cThisItem, "BKML", 4 ) )
		{
			printf("Process BKJHML.\n");
			sprintf( cThisItem, "%s/%s", TEMP_DIR, cThisItem );
			if( fork() == 0 )
			{
				if( -1 == execl( "/usr/bkfx/bin/Pcs_Snd_BKJHML1.x","Pcs_Snd_BKJHML1.x", cThisItem, NULL ) );
				 	printf("Pcs_Snd_BKJHML1.x not found.\n ");
				 exit(1);
			}
		}
		else if( !strncmp( cThisItem, "YX", 2 ) )
		{
			printf("Process YX.\n");
			sprintf( cThisItem, "%s/%s", TEMP_DIR, cThisItem );
			if( fork() == 0 )
			{
				if( -1 == execl( "/usr/bkfx/bin/Pcs_Snd_YX1.x","Pcs_Snd_YX1.x", cThisItem, NULL ) );
				 	printf("Pcs_Snd_YX1.x not found.\n ");
				 exit(1);
			}
		}
		else if( !strncmp( cThisItem, "BSFX", 4 ) )
		{
			printf("Process BSFX.\n");
			sprintf( cThisItem, "%s/%s", TEMP_DIR, cThisItem );
			if( fork() == 0 )
			{
				if( -1 == execl( "/usr/bkfx/bin/Pcs_Snd_BSFX1.x","Pcs_Snd_BSFX1.x", cThisItem, NULL ) );
				 	printf("Pcs_Snd_BSFX1.x not found.\n ");
				 exit(1);
			}
		}
		else if( !strncmp( cThisItem, "SNML", 4 ) )
		{
			printf("Process SNML.\n");
			sprintf( cThisItem, "%s/%s", TEMP_DIR, cThisItem );
			if( fork() == 0 )
			{
				if( -1 == execl( "/usr/bkfx/bin/Pcs_Snd_SNML.x","Pcs_Snd_SNML.x", cThisItem, NULL ) );
				 	printf("Pcs_Snd_SNML.x not found.\n ");
				 exit(1);
			}
		}
		else if( !strncmp( cThisItem, "GH", 2 ) )
		{
			printf(" Process GH.\n" );
			if( fork() == 0 )
			{
				if( -1 == execl( "Pcs_Snd_GH1.x", cThisItem, NULL ) );
				 	printf("PCS_Snd_GH.x not found.\n ");
				 exit(1);
			}
		}
		else if( !strncmp( cThisItem, "TJBB", 4 ) )
		{
			printf(" Process TJBB.\n" );
			if( fork() == 0 )
			{
				if( -1 == execl( "Pcs_Snd_TJBB1.x", cThisItem, NULL ) );
				 	printf("PCS_Snd_TJBB.x not found.\n ");
				 exit(1);
			}
		}
		else if( !strncmp( cThisItem, "ZFJB", 4 ) )
		{
			printf(" Process ZFJB.\n" );
			if( fork() == 0 )
			{
				if( -1 == execl( "Pcs_Snd_ZFJB1.x", cThisItem, NULL ) );
				 	printf("Pcs_Snd_ZFJB1.x not found.\n ");
				 exit(1);
			}
		}
		else if( (!strncmp( cThisItem, "BZZY", 4 )) || (!strncmp( cThisItem, "BZJY", 4 )) \
			|| (!strncmp( cThisItem, "BPZY", 4 )) || (!strncmp( cThisItem, "BPJY", 4 )) \
			|| (!strncmp( cThisItem, "KZZY", 4 )) || (!strncmp( cThisItem, "KZJY", 4 )) \
			|| (!strncmp( cThisItem, "KPZY", 4 )) || (!strncmp( cThisItem, "KPJY", 4 )))
		{
			printf(" Process YSSM.\n" );
			if( fork() == 0 )
			{
				if( -1 == execl( "Pcs_Snd_YS1.x", cThisItem, NULL ) );
				 	printf("Pcs_Snd_YS1.x not found.\n ");
				 exit(1);
			}
		}
		else
		{
			printf("process other file.\n");
			sprintf( cCommand, "mv %s/%s %s/%s\n", TEMP_DIR, cThisItem, GARBAGE_DIR, cThisItem );
			system( cCommand );
		}
	}
	return(0);
}


/*
 *Release system resource after procession
 */
void EndPCSRestore()
{
/*	CloseErrLogObj();*/
}


/*
 *Processions taken when SQL Error occurs
 */
void sqlerror()
{
	/* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 

	
	printf("\nOracle error detected.\n");
	printf("\n%.70s \n", sqlca.sqlerrm.sqlerrmc);
	
	/* EXEC SQL ROLLBACK WORK; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 3;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )666;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


	/*exit(1);*/
}


/*
 *Called when system administrator kill the process
 *function: Release memory, close file handle, disconnect database, etc.
 */
void Terminate()
{
	/* EXEC SQL ROLLBACK RELEASE; */ 

{
 struct sqlexd sqlstm;

 sqlstm.sqlvsn = 8;
 sqlstm.arrsiz = 3;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )680;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)0;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


/*	CloseErrLogObj();*/
}



⌨️ 快捷键说明

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