📄 pcsrestoreapi.c
字号:
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 + -