📄 pcs_input_sjbh.pc
字号:
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* File name : Pcs_Input_SJBH.pc *
* Module ID : *
* Module Name : *
* Purpose : Get SJBH Data from SJBHFile And Insert into T_SJBH *
* Author : Liu Yan Qiu ( DIMPT ) *
* Date Created : 2000.03.20 *
* Version : Version 1.0 *
* Environment : SCO UNIX *
* Portability : UNIX Platform *
* Warnings : *
* References1 : *
* Calling Syntax : *
* Parameters : None *
* Returns : void *
* Calling Function : *
* Called Functions : When Broadcase Our Appilications *
* Datastores and usages: *
* (a) Input *
* (b) OutPut *
* Report : None *
* Screens : None *
* Messages Files : None *
* Change Log : *
* Change No. Date Author Reason For Change *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
#include <stdio.h>
#include <stdlib.h>
#include <sqlca.h>
#include <stddef.h>
#include <fcntl.h>
#include <signal.h>
#include "/usr/bkfx/src/CommonAPI/myapi.h"
/*#ifndef DEBUG
#define DEBUG
#endif
*/
#define ERROR_LOG_FILE "/usr/bkfx/log/errlog"
#define LOG_NORMAL "LOG_NORMAL "
#define LOG_ERROR "LOG_ERROR "
#define END ""
int mypath();
void ProcessError();
void Free_Mem();
int Init_Input_SJBH();
int Read_SJBH_File();
int Insert_SJBH_DB();
int End_PCS_Input_SJBH();
int rtn_code;
char * buf_sjbh, * tmp;
FILE * fp;
void main( int argc, char *argv[])
{
signal( SIGTERM, Free_Mem);
EXEC SQL INCLUDE SQLCA;
rtn_code = Init_Input_SJBH();
if ( rtn_code < 0 )
{
ProcessError(LOG_ERROR,"Pcs_Input_SJBH.x: Calling Function \
Init_Input_SJBH() Failed!",END);
exit(-1);
}
rtn_code = Read_SJBH_File( argv[1] );
if ( rtn_code < 0 )
{
ProcessError(LOG_ERROR,"Pcs_Input_SJBH.x: Calling Function \
Read_SJBH_File() Failed!",END);
if ( buf_sjbh != NULL ) free( buf_sjbh);
fclose(fp);
exit(-1);
}
rtn_code = Insert_SJBH_DB();
if ( rtn_code < 0 )
{
ProcessError(LOG_ERROR,"Pcs_Input_SJBH.x: Calling Function \
Insert_SJBH_DB() Failed!",END);
if ( buf_sjbh != NULL ) free( buf_sjbh);
exit(-1);
}
rtn_code = End_PCS_Input_SJBH();
if ( rtn_code < 0 )
{
ProcessError(LOG_ERROR,"Pcs_Input_SJBH.x: Calling Function \
End_PCS_Input_SJBH() Failed!",END);
exit(-1);
}
} /* end of main program */
void Free_Mem()
{
if ( tmp != NULL ) free( tmp );
fclose(fp);
EXEC SQL ROLLBACK RELEASE;
}
int Init_Input_SJBH()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR userid[10];
VARCHAR password[10];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE SQLCA;
EXEC SQL WHENEVER SQLERROR GOTO sqlerror;
/*****************************
| Connect to DataBase |
*****************************/
strcpy( userid.arr,"pcsdba");
userid.len = strlen (userid.arr);
strcpy( password.arr,"dba");
password.len = strlen( password.arr);
EXEC SQL CONNECT :userid IDENTIFIED BY :password;
return (1);
sqlerror:
ProcessError(LOG_ERROR,"Connect To DataBase SQL Error!");
EXEC SQL RollBack;
return(-1);
}
int Read_SJBH_File(char *file_name )
{
int len_sjbh_file;
fp = fopen(file_name,"r");
if (fp == NULL)
{
ProcessError(LOG_ERROR,"Pcs_Input_SJBH.x: Open SJBH \
File Error!",END);
return(-1);
}
file_name = file_name + mypath(file_name);
fseek( fp,0,2);
len_sjbh_file = ftell( fp);
buf_sjbh = ( char * )malloc( len_sjbh_file + 1);
if (buf_sjbh == NULL)
{
ProcessError(LOG_ERROR,"Pcs_Input_SJBH.x: Malloc SJBH \
Buffer Error!",END);
return ( -1);
}
memset( buf_sjbh, '\0', len_sjbh_file + 1 );
fseek( fp,0,0);
fread( buf_sjbh,len_sjbh_file,1,fp );
fclose( fp );
tmp = buf_sjbh;
return(1);
}
int Insert_SJBH_DB()
{
char sjbh[3], sjmc[9];
int i = 0, j = 0, comma = 0, p = 0;
while ( buf_sjbh[p] != '\0' )
{
if (( buf_sjbh[p] != ' ' ) && ( buf_sjbh[p] != '\t' ) && \
( buf_sjbh[p] != '\n ') )
{
if ( buf_sjbh[p] == ',' )
{
comma++;
if ( comma%2 == 1 )
{
sjbh[i] = '\0';
i = 0;
}
else
{
sjmc[j] = '\0';
j = 0;
}
if ( comma%2 == 0 )
{
EXEC SQL WHENEVER SQLERROR GOTO sqlerror;
#ifdef DEBUG
printf("sjbh,sjmc is %s,%s\n",sjbh, \
sjmc);
#endif
EXEC SQL INSERT INTO T_SJBH
VALUES (:sjbh, :sjmc );
}
}
else
{
if ( isspace( buf_sjbh[p] ) == 0 )
{
if ( comma%2 == 0 )
{
sjbh[i] = buf_sjbh[p];
i++;
}
else
{
sjmc[j] = buf_sjbh[p];
j++;
}
}
}
}
buf_sjbh[p++];
}
if (comma%2 != 0) return(-1);
free( tmp );
EXEC SQL COMMIT;
return(1);
sqlerror:
ProcessError(LOG_ERROR,"Pcs_Input_SJBH.x: Running Function \
Insert_SJBH_DB() SQL Error!",END);
free( tmp );
EXEC SQL ROLLBACK;
return (-1);
}
int End_PCS_Input_SJBH()
{
EXEC SQL WHENEVER SQLERROR GOTO sqlerror;
EXEC SQL COMMIT WORK RELEASE;
return(1);
sqlerror:
ProcessError(LOG_ERROR,"Pcs_Input_SJBH.x: Running Function \
End_PCS_Input_SJBH() SQL Error!",END);
EXEC SQL RollBack RELEASE;
return(-1);
}
int mypath( char *filename )
{
int len, i;
len = strlen(filename);
for( i = len-1 ; i >= 0 ; i-- )
if( filename[i] == '/' ) break;
return (i+1);
}
void ProcessError( char *LOG, char *sErrorMessage1, char *sErrorMessage2 )
{
FILE* hErrorFile;
char cDateTime[100],tempstr[100];
int i,j,len,n;
tempstr[0]='\0';
len=strlen(sErrorMessage1);
for(i=0;i<=len;i++)
{
if(sErrorMessage1[i]=='%')
{
n=i;
if(len!=i+1)
{
for(j=0;j<200&&sErrorMessage1[i+2]!='\0';j++,i++)
tempstr[j]=sErrorMessage1[i+2];
tempstr[j]='\0';
}
break;
}
if(sErrorMessage1[i]=='\0')
{
n=i;
tempstr[0] = '\0';
break;
}
}
sErrorMessage1[n]='\0';
hErrorFile = fopen( ERROR_LOG_FILE, "a" );
if( hErrorFile == NULL )
{
printf( "Critical! Cannot open ERROR_LOG_FILE for append or cannot create!\n");
return;
}
fseek( hErrorFile, 0 ,SEEK_END );
fputs( "\n",hErrorFile);
fputs( LOG ,hErrorFile);
printf("\n%s",LOG);
fputs( sErrorMessage1,hErrorFile );
printf("%s",sErrorMessage1);
fputs( sErrorMessage2,hErrorFile );
printf("%s",sErrorMessage2);
fputs( tempstr,hErrorFile );
printf("%s\n",tempstr);
fputs( "\n",hErrorFile);
fclose( hErrorFile );
sprintf( cDateTime, "date >> %s\n", ERROR_LOG_FILE );
system( cDateTime );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -