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 + -
显示快捷键?