loadbasicdat.cpp

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

CPP
1,881 行
字号
		printf( "CisBankDat.name       :[%s]\n", CisBankDat.name);		printf( "CisBankDat.status         :[%s]\n", CisBankDat.status);		printf( "CisBankDat.update     :[%s]\n", CisBankDat.update);		printf( "CisBankDat.alttype     :[%s]\n", CisBankDat.alttype);		printf( "CisBankDat.uptime      :[%s]\n", CisBankDat.uptime);		printf("==============================================================\n");}		//相关判断,现都直接增加		//开始保存报文		strcpy( Table, "BANKTYPE" );		memset( SqlCmd, 0, sizeof(SqlCmd) );		sprintf( SqlCmd, "INSERT INTO %s VALUES('%s', '%s')",					Table,					CisBankDat.code,					CisBankDat.name );		ret = sCis.SaveCisData( Table, SqlCmd, retMsg);		if( ret <= 0 )		{			printf("保存数据失败!\n");			printf( "sSqlCmd:[%s]\n", SqlCmd );			sCis.RollbackTrans();			return FALSE;		}		nCount ++ ;	}        sCis.CommitTrans();	printf("==============导入数据成功[%d]条\t导入数据失败[%d]条=============\n", nCount, nErrno );	fclose( FP );	return TRUE;}int LoadCisNodeData( 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;	int billflag=0;	FILE *FP=NULL;	char recvbuff[1024+1];	CIS_NODE_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");		//	return FALSE;		}//		printf("recvbuff:[%s]\n", recvbuff );		if( strlen(recvbuff) ==  0 )			continue;		memset( &CisBankDat, 0, sizeof(CIS_NODE_DATA) );		Begin = End = recvbuff;		for( int i=0; i<11; 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.type, Begin +1, End - Begin -1);			if( i == 3 )				memcpy( CisBankDat.citycode, Begin +1 , End - Begin -1);			if( i == 4 )				memcpy( CisBankDat.remark, Begin +1, End - Begin -1);			if( i == 5 )				memcpy( CisBankDat.status, Begin +1, End - Begin -1);			if( i == 6 )				memcpy( CisBankDat.effdate, Begin +1, End - Begin -1);			if( i == 7 )				memcpy( CisBankDat.invdate, Begin +1, End - Begin -1);			if( i == 8 )				memcpy( CisBankDat.update, Begin +1, End - Begin -1);			if( i == 9 )				memcpy( CisBankDat.alttype, Begin +1, End - Begin -1);			if( i == 10 )			{//				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 = FormatNodeDat( &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);		printf( "CisBankDat.name       :[%s]\n", CisBankDat.name);		printf( "CisBankDat.status         :[%s]\n", CisBankDat.status);		printf( "CisBankDat.update     :[%s]\n", CisBankDat.update);		printf( "CisBankDat.alttype     :[%s]\n", CisBankDat.alttype);		printf( "CisBankDat.uptime      :[%s]\n", CisBankDat.uptime);		printf("==============================================================\n");}		//相关判断		if( atoi(CisBankDat.status) == 1 )	//待生效		{			strcpy( Table, "DISCENT_ASS" );			billflag = 0;		}		if( atoi(CisBankDat.status) == 2 && atoi(CisBankDat.alttype) != 3)	//有效非注销		{			strcpy( Table, "DISCENT" );			billflag = 1;		}				//开始保存报文		memset( SqlCmd, 0, sizeof(SqlCmd) );		if( billflag == 1 )		{			sprintf( SqlCmd, "INSERT INTO %s VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",					Table,					CisBankDat.code,					CisBankDat.name,					CisBankDat.type,					CisBankDat.citycode,					CisBankDat.effdate,					CisBankDat.invdate,					CisBankDat.alttype,					"0" );		}		else		{			sprintf( SqlCmd, "INSERT INTO %s VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",					Table,					CisBankDat.update,					CisBankDat.code,					CisBankDat.name,					CisBankDat.type,					CisBankDat.citycode,					CisBankDat.effdate,					CisBankDat.invdate,					CisBankDat.alttype,					CisBankDat.remark );		}		ret = sCis.SaveCisData( Table, SqlCmd, retMsg );		if( ret <= 0 )		{			printf("保存数据失败!\n");			printf( "sSqlCmd:[%s]\n", SqlCmd );			sCis.RollbackTrans();			return FALSE;		}		nCount ++ ;	}        sCis.CommitTrans();	printf("==============导入数据成功[%d]条\t导入数据失败[%d]条=============\n", nCount, nErrno );	fclose( FP );	return TRUE;}int LoadCisCityData( 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;	int billflag=0;	FILE *FP=NULL;	char recvbuff[1024+1];	CIS_CITY_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");		//	return FALSE;		}//		printf("recvbuff:[%s]\n", recvbuff );		if( strlen(recvbuff) ==  0 )			continue;		memset( &CisBankDat, 0, sizeof(CIS_CITY_DATA) );		Begin = End = recvbuff;		for( int i=0; i<8; 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.type, Begin +1, End - Begin -1);			if( i == 3 )				memcpy( CisBankDat.remark, Begin +1 , End - Begin -1);			if( i == 4 )				memcpy( CisBankDat.status, Begin +1, End - Begin -1);			if( i == 5 )				memcpy( CisBankDat.update, Begin +1, End - Begin -1);			if( i == 6 )				memcpy( CisBankDat.alttype, Begin +1, End - Begin -1);			if( i == 7 )			{//				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 = FormatCityDat( &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);		printf( "CisBankDat.name       :[%s]\n", CisBankDat.name);		printf( "CisBankDat.status         :[%s]\n", CisBankDat.status);		printf( "CisBankDat.update     :[%s]\n", CisBankDat.update);		printf( "CisBankDat.alttype     :[%s]\n", CisBankDat.alttype);		printf( "CisBankDat.uptime      :[%s]\n", CisBankDat.uptime);		printf("==============================================================\n");}		//相关判断		if( atoi(CisBankDat.status) == 2 && atoi(CisBankDat.alttype) != 3)	//有效非注销		{			billflag = 1;		}		else			billflag = 0;		//开始保存报文		strcpy( Table, "CITYENROL" );		memset( SqlCmd, 0, sizeof(SqlCmd) );		if( billflag == 1 )		{			sprintf( SqlCmd, "INSERT INTO %s VALUES('%s', '%s', '%s', '%s')",					Table,					CisBankDat.code,					CisBankDat.name,					CisBankDat.type,					CisBankDat.remark );			ret = sCis.SaveCisData( Table, SqlCmd, retMsg );			if( ret <= 0 )			{				printf("保存数据失败!\n");				printf( "sSqlCmd:[%s]\n", SqlCmd );				sCis.RollbackTrans();				return FALSE;			}		}		else		{			sprintf( SqlCmd, "DELETE FROM %s WHERE CODE='%s'",					Table,					CisBankDat.code );					ret = sCis.DeleteCisData( Table, SqlCmd, retMsg );			if( ret <= 0 )			{				printf("删除数据失败!\n");				printf( "sSqlCmd:[%s]\n", SqlCmd );				sCis.RollbackTrans();				return FALSE;			}		}		nCount ++ ;	}        sCis.CommitTrans();	printf("==============导入数据成功[%d]条\t导入数据失败[%d]条=============\n", nCount, nErrno );	fclose( FP );	return TRUE;}int LoadCisRightlistData( 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[1800+1];	CIS_RIGHTLIST_DATA CisBankDat;	char *pRet;	char *Begin = NULL, *End = NULL;	char Table[15];	char SqlCmd[1800];	char workdate[8+1];	memset( workdate, 0, sizeof(workdate) );

⌨️ 快捷键说明

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