loadbasicdat.cpp

来自「液晶电视完整代码可实现人机界面」· C++ 代码 · 共 1,881 行 · 第 1/4 页

CPP
1,881
字号
		sprintf( fullname, "%s/basicdata/CIS_NODE_DATA.del", getenv("WORKDIR") );	if( optno == 5 )		sprintf( fullname, "%s/basicdata/CIS_CITY_DATA.del", getenv("WORKDIR") );	if( optno == 6 )		sprintf( fullname, "%s/basicdata/CIS_RIGHTLIST_DATA.del", getenv("WORKDIR") );	if( optno == 7 )		sprintf( fullname, "%s/basicdata/CIS_COMMON_DATA.del", getenv("WORKDIR") );	if( optno == 8 )		sprintf( fullname, "%s/basicdata/CIS_PARAMETER_DATA.del", getenv("WORKDIR") );				//	char Password[20];	memset( Password , 0 , sizeof( Password ));	strcpy( Password , getenv("PASSWORD"));    char DBUserName[10];    memset( DBUserName , 0 , sizeof(DBUserName));    strcpy( DBUserName , getenv("DBUSERNAME"));    StrTrim(DBUserName , ' ');    if( strlen( DBUserName ) == 0 )    {	strcpy( DBUserName , "sa");    }    printf("DBUserName = [%s]\n", DBUserName );	ret = connectToDB( "SYBASE" , DBUserName , Password , "DIRWAYSDB");	if( ret != 0 )	{		filelog("LoadError.log","连接数据库失败!\n");		printf("连接数据库失败!\n");		return FALSE;	}	switch( optno )	{		case 1:			ret = LoadCisBankData( fullname, RetMsg );			break;		case 2:			ret = LoadCisBankAssist( fullname, RetMsg );			break;		case 3:			ret = LoadCisBankclassData( fullname, RetMsg );			break;		case 4:			ret = LoadCisNodeData( fullname, RetMsg );			break;		case 5:			ret = LoadCisCityData( fullname, RetMsg );			break;		case 6:			ret = LoadCisRightlistData( fullname, RetMsg );			break;		case 7:			ret = LoadCisCommonData( fullname, RetMsg );			break;		case 8:			ret = LoadCisParameterData( fullname, RetMsg );			break;		default:			printf("错误选项:[%d]", optno);			ret = -1;			break;	}	if( ret <= 0 )	{		printf("导入失败:%s!\n",RetMsg);		return FALSE;	}	printf("\n======================>导入数据成功<======================\n");		disConnectToDB();	return TRUE;}int LoadCisBankData( char *filename, char *retMsg ){	//提示//	printf("Enter LoadCisBankData \n" );//	printf("filename:[%s]\n", filename );	//验证介质	if( 0 != access( filename, 0 ) )	{		sprintf( retMsg, "数据文件[%s]不存在!", filename );		return FALSE;	}		//	int ret=0;	int nCount=0;	int nErrno=0;	int billflag=0;	FILE *FP=NULL;	char recvbuff[1024+1];	CIS_BANK_DATA CisBankDat;	char *pRet = NULL;	char *Begin = NULL, *End = NULL;	char Table[15];	char SqlCmd[1024];	char workdate[8+1];		memset( workdate, 0, sizeof(workdate) );	memset( Table, 0, sizeof(Table) );	memset( SqlCmd, 0, sizeof(SqlCmd) );		if ( (FP = fopen(filename, "r+")) == NULL )	{		sprintf(retMsg, "打开数据文件[%s]失败!\n", filename);		return FALSE;	}	//查找系统工作日期	sprintf( SqlCmd, "SELECT currsysdate from login" );	ret = sCis.FindCisValue( "login", SqlCmd, workdate, retMsg );//printf("ret:[%d]\tworkdate:[%s]\n", ret, workdate);	if( ret <= 0 )	{		printf("查找系统工作日失败!\n");		printf("SqlCmd:[%s]\n",SqlCmd );		return FALSE;	}	//开始数据处理	sCis.BeginTrans();	while( !feof(FP) )	{		printf("已导入数据[%d]开始导入第[%d]条数据\n", nCount, nCount+1 );				memset( recvbuff, 0, sizeof(recvbuff) );		pRet = fgets( recvbuff, sizeof(recvbuff), FP );		if( pRet == NULL )		{			printf("读取文件内容有误或为空!\n");			sCis.CommitTrans();		//	return FALSE;		}//		printf("recvbuff:[%s]\n", recvbuff );		if( strlen(recvbuff) ==  0 )			continue;		memset( &CisBankDat, 0, sizeof(CIS_BANK_DATA) );		Begin = End = recvbuff;		for( int i=0; i<25; i++ )		{			Begin = End;			End = strstr( Begin+1, "\t" );			if( End == NULL )			{ printf("end\n"); }			if( i == 0 )				memcpy( CisBankDat.code, Begin, End - Begin );			if( i == 1 )				memcpy( CisBankDat.status, Begin +1 , End - Begin -1);			if( i == 2 )				memcpy( CisBankDat.type, Begin +1, End - Begin -1);			if( i == 3 )				memcpy( CisBankDat.banktype, Begin +1 , End - Begin -1);			if( i == 4 )				memcpy( CisBankDat.suprlist, Begin +1, End - Begin -1);			if( i == 5 )				memcpy( CisBankDat.centcod, Begin +1, End - Begin -1);			if( i == 6 )				memcpy( CisBankDat.billcode, Begin +1, End - Begin -1);			if( i == 7 )				memcpy( CisBankDat.bankcode, Begin +1, End - Begin -1);			if( i == 8 )				memcpy( CisBankDat.ccpc, Begin +1, End - Begin -1);			if( i == 9 )				memcpy( CisBankDat.optbank, Begin +1, End - Begin -1);			if( i == 30 )				memcpy( CisBankDat.optbankinvdat, Begin +1, End - Begin -1);			if( i == 31 )				memcpy( CisBankDat.city, Begin +1, End - Begin -1);			if( i == 12 )				memcpy( CisBankDat.bankname, Begin +1, End - Begin -1);			if( i == 13 )				memcpy( CisBankDat.simname, Begin +1, End - Begin -1);			if( i == 14 )				memcpy( CisBankDat.bankaddr, Begin +1, End - Begin -1);			if( i == 15 )				memcpy( CisBankDat.postcode, Begin +1, End - Begin -1);			if( i == 16 )				memcpy( CisBankDat.tel, Begin +1, End - Begin -1);			if( i == 17 )				memcpy( CisBankDat.linkman, Begin +1, End - Begin -1);			if( i == 18 )				memcpy( CisBankDat.email, Begin +1, End - Begin -1);			if( i == 19 )				memcpy( CisBankDat.effdate, Begin +1, End - Begin -1);			if( i == 20 )				memcpy( CisBankDat.updatedate, Begin +1, End - Begin -1);			if( i == 21 )				memcpy( CisBankDat.updatetime, Begin +1, End - Begin -1);			if( i == 22 )				memcpy( CisBankDat.alttype, Begin +1, End - Begin -1);			if( i == 23 )				memcpy( CisBankDat.updatenum, Begin +1, End - Begin -1);			if( i == 24 )			{//				End = strstr( Begin+2, "\"" );//				memcpy( CisBankDat.remark, Begin + 2 , End - Begin -2);				strcpy( CisBankDat.remark, Begin+1 );//				memcpy( CisBankDat.remark, Begin +1, End - Begin );			}		}		//去业务要素头尾				ret = FormatDat( &CisBankDat, retMsg );		if( ret <= 0 )		{			printf("retMsg:[%s]\n", retMsg );			sCis.CommitTrans();			return FALSE;		}		if( ret == 9 )		{		nErrno ++;			int input;			printf("\n!!!导入数据失败是否继续:\t1.跳过该数据/以后手工导入\t2.退出\n");			printf("请输入:");			scanf("%d", &input );			while( 1 )			{				if(input<1||input>2)				{ 					printf("输入非法[%d]\t使用默认值[1]\n", input);					input=1;					continue;				}				else					break;			}			if( input == 2 )			{				sCis.CommitTrans();				return FALSE;			}			if( input==1 )				continue;		}if( ret==9 ){		printf("==============================================================\n");		printf( "CisBankDat.code         :[%s]\n", CisBankDat.code);		printf( "CisBankDat.status       :[%s]\n", CisBankDat.status);		printf( "CisBankDat.type         :[%s]\n", CisBankDat.type);		printf( "CisBankDat.banktype     :[%s]\n", CisBankDat.banktype);		printf( "CisBankDat.suprlist     :[%s]\n", CisBankDat.suprlist);		printf( "CisBankDat.centcod      :[%s]\n", CisBankDat.centcod);		printf( "CisBankDat.billcode     :[%s]\n", CisBankDat.billcode);		printf( "CisBankDat.bankcode     :[%s]\n", CisBankDat.bankcode);		printf( "CisBankDat.ccpc         :[%s]\n", CisBankDat.ccpc);		printf( "CisBankDat.optbank      :[%s]\n", CisBankDat.optbank);		printf( "CisBankDat.optbankinvdat:[%s]\n", CisBankDat.optbankinvdat);		printf( "CisBankDat.city         :[%s]\n", CisBankDat.city);		printf( "CisBankDat.bankname     :[%s]\n", CisBankDat.bankname);		printf( "CisBankDat.simname      :[%s]\n", CisBankDat.simname);		printf( "CisBankDat.bankaddr     :[%s]\n", CisBankDat.bankaddr);		printf( "CisBankDat.postcode     :[%s]\n", CisBankDat.postcode);		printf( "CisBankDat.tel          :[%s]\n", CisBankDat.tel);		printf( "CisBankDat.linkman      :[%s]\n", CisBankDat.linkman);		printf( "CisBankDat.email        :[%s]\n", CisBankDat.email);		printf( "CisBankDat.effdate      :[%s]\n", CisBankDat.effdate);		printf( "CisBankDat.updatedate   :[%s]\n", CisBankDat.updatedate);		printf( "CisBankDat.updatetime   :[%s]\n", CisBankDat.updatetime);		printf( "CisBankDat.alttype      :[%s]\n", CisBankDat.alttype);		printf( "CisBankDat.updatenum    :[%s]\n", CisBankDat.updatenum);		printf( "CisBankDat.remark       :[%s]\n", CisBankDat.remark);		printf("==============================================================\n");		}						//判断票交机构类别 999票交所		if( strncmp( CisBankDat.banktype, "999", 3 ) == 0 )		{			billflag = 1;	//票交所			strcpy( Table, "BILLENROL" );		}		else		{			billflag = 0;	//票交机构			strcpy( Table, "BILLORG" );		}				memset( SqlCmd, 0, sizeof(SqlCmd) );		if( billflag == 0 )		{			sprintf( SqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",							Table,							CisBankDat.code,							CisBankDat.banktype,							CisBankDat.type,							CisBankDat.bankcode,							CisBankDat.optbank,							CisBankDat.optbankinvdat,							CisBankDat.suprlist,							CisBankDat.centcod,							CisBankDat.billcode,							CisBankDat.city,							CisBankDat.bankname,							CisBankDat.simname,							CisBankDat.bankaddr,							CisBankDat.tel,							CisBankDat.linkman,							CisBankDat.postcode,							CisBankDat.email,							CisBankDat.effdate,							CisBankDat.alttype,							CisBankDat.remark);		}		else		{			sprintf( SqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",							Table,							CisBankDat.code,							CisBankDat.type,							CisBankDat.centcod,							CisBankDat.city,							CisBankDat.bankname,							CisBankDat.simname,							CisBankDat.bankaddr,							CisBankDat.tel,							CisBankDat.linkman,							CisBankDat.postcode,							CisBankDat.email,							CisBankDat.effdate,							CisBankDat.alttype,							CisBankDat.remark);		}			ret = sCis.SaveCisData( Table, SqlCmd, retMsg);		if( ret <= 0 )		{			printf("保存数据失败!\n");			printf( "sSqlCmd:[%s]\n", SqlCmd );			//sCis.RollbackTrans();			sCis.CommitTrans();			return FALSE;		}		nCount ++ ;	}        sCis.CommitTrans();	printf("==============导入数据成功[%d]条\t导入数据失败[%d]条=============\n", nCount, nErrno );	if( nErrno != 0 )		printf("!!!!!!提示:导入数据失败[%d]条,请查看日志手工导入!\n", nErrno);	fclose( FP );	return TRUE;}int LoadCisBankAssist( char *filename, char *retMsg ){	printf("目前该文件为空,未开发该程序!\n");	return TRUE;}int LoadCisBankclassData( char *filename, char *retMsg ){	//提示//	printf("Enter LoadCisBankclassData \n" );//	printf("filename:[%s]\n", filename );	//验证介质	if( 0 != access( filename, 0 ) )	{		sprintf( retMsg, "数据文件[%s]不存在!", filename );		return FALSE;	}	//	int ret=0;	int nCount=0;	int nErrno=0;	FILE *FP=NULL;	char recvbuff[1024+1];	CIS_BANK_CLASS_DATA CisBankDat;	char *pRet = NULL;	char *Begin = NULL, *End = NULL;	char Table[15];	char SqlCmd[1024];	char workdate[8+1];	memset( workdate, 0, sizeof(workdate) );	memset( Table, 0, sizeof(Table) );	memset( SqlCmd, 0, sizeof(SqlCmd) );	if ( (FP = fopen(filename, "r+")) == NULL )	{		sprintf(retMsg, "打开数据文件[%s]失败!\n", filename);		return FALSE;	}	//开始数据处理	sCis.BeginTrans();	while( !feof(FP) )	{		printf("已导入数据[%d]开始导入第[%d]条数据\n", nCount, nCount+1 );		memset( recvbuff, 0, sizeof(recvbuff) );		pRet = fgets( recvbuff, sizeof(recvbuff), FP );		if( pRet == NULL )		{			printf("读取文件内容有误或为空!\n");		//	return FALSE;		}	//	printf("recvbuff:[%s]\n", recvbuff );		if( strlen(recvbuff) ==  0 )			continue;		memset( &CisBankDat, 0, sizeof(CIS_BANK_CLASS_DATA) );		Begin = End = recvbuff;		for( int i=0; i<6; i++ )		{			Begin = End;			End = strstr( Begin+1, "\t" );			if( End == NULL )			{ printf("end\n"); } 			if( i == 0 )				memcpy( CisBankDat.code, Begin, End - Begin );			if( i == 1 )				memcpy( CisBankDat.name, Begin +1 , End - Begin -1);			if( i == 2 )				memcpy( CisBankDat.status, Begin +1, End - Begin -1);			if( i == 3 )				memcpy( CisBankDat.update, Begin +1 , End - Begin -1);			if( i == 4 )				memcpy( CisBankDat.alttype, Begin +1, End - Begin -1);//			if( i == 5 )//				memcpy( CisBankDat.uptime, Begin +1, End - Begin -1);			if( i == 5 )			{//				End = strstr( Begin+2, "\"" );//				memcpy( CisBankDat.remark, Begin + 2 , End - Begin -2);				strcpy( CisBankDat.uptime, Begin+1 );//				memcpy( CisBankDat.remark, Begin +1, End - Begin );			}		}		//去业务要素头尾		ret = FormatCisBankClassDat( &CisBankDat, retMsg );		if( ret <= 0 )		{			printf("retMsg:[%s]\n", retMsg );			return FALSE;		}		if( ret == 9 )		{		nErrno ++;		nCount --;			int input;			printf("\n!!!导入数据失败是否继续:\t1.跳过该数据/以后手工导入\t2.退出\n");			printf("请输入:");			scanf("%d", &input );			while( 1 )			{				if(input<1||input>2)				{					printf("输入非法[%d]\t使用默认值[1]\n", input);					input=1;					continue;				}				else					break;			}			if( input == 2 )			{	return FALSE;	}			if( input==1 )				continue;		}if( ret==9 ){		printf("==============================================================\n");		printf( "CisBankDat.code         :[%s]\n", CisBankDat.code);

⌨️ 快捷键说明

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