loadbasicdat.cpp
来自「液晶电视完整代码可实现人机界面」· C++ 代码 · 共 1,881 行 · 第 1/4 页
CPP
1,881 行
#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>#include <sys/time.h>#include <unistd.h>#include "MbToCis.h"#include "CisPub.hpp"#include "CisProc.hpp"#include "sybdblib.hpp"///////////////////////////////////////#ifndef BOOL#endif#ifndef TRUE #define TRUE 1#endif//////函数声明int LoadCisBankData( char *filename, char *retMsg );int LoadCisBankAssist( char *filename, char *retMsg );int LoadCisBankclassData( char *filename, char *retMsg );int LoadCisNodeData( char *filename, char *retMsg );int LoadCisCityData( char *filename, char *retMsg );int LoadCisRightlistData( char *filename, char *retMsg );int LoadCisCommonData( char *filename, char *retMsg );int LoadCisParameterData( char *filename, char *retMsg );/////////////////SybServer m_clsSybServer;BepsPub sCis;typedef struct{ char code[12+1+2]; char status[1+1+2]; char type[2+1+2]; char banktype[3+1+2]; char suprlist[70+1+2]; char centcod[4+1+2]; char billcode[12+1+2]; char bankcode[12+1+2]; char ccpc[4+1+2]; char optbank[12+1+2]; char optbankinvdat[8+1+2]; char city[4+1+2]; char bankname[60+1+2]; char simname[20+1+2]; char bankaddr[60+1+2]; char postcode[6+1+2]; char tel[30+1+2]; char linkman[16+1+2]; char email[30+1+2]; char effdate[8+1+2]; char updatedate[8+1+2]; char updatetime[26+1+2]; char alttype[1+1+2]; char updatenum[8+1+2]; char remark[30+1+2];}CIS_BANK_DATA;typedef struct{ char code[3+1+2]; char name[30+1+2]; char status[1+1+2]; char update[8+1+2]; char alttype[1+1+2]; char uptime[26+1+2];}CIS_BANK_CLASS_DATA;typedef struct{ char code[4+1+2]; char name[20+1+2]; char type[1+1+2]; char citycode[4+1+2]; char remark[60+1+2]; char status[1+1+2]; char effdate[8+1+2]; char invdate[8+1+2]; char update[8+1+2]; char alttype[1+1+2]; char uptime[26+1+2];}CIS_NODE_DATA;typedef struct{ char code[4+1+2]; char name[20+1+2]; char type[1+1+2]; char remark[60+1+2]; char status[1+1+2]; char update[8+1+2]; char alttype[1+1+2]; char uptime[26+1+2];}CIS_CITY_DATA;typedef struct{ char code[12+1+2]; char sendgrant[800+1+2]; char recvgrant[800+1+2]; char update[8+1+2]; char uptime[26+1+2];}CIS_RIGHTLIST_DATA;typedef struct{ char datcode[8+1+2]; char datname[40+1+2]; char datvalue[250+1+2]; char wdatvalue[250+1+2]; char effdata[8+1+2]; char update[8+1+2]; char uptime[26+1+2]; char remark[60+1+2];}CIS_COMMON_DATA;typedef struct{ char parcode[3+1+2]; char parval[5+1+2]; char pardesc[60+1+2]; char status[1+1+2]; char alttype[1+1+2]; char update[8+1+2];}CIS_PARAMETER_DATA;int STRTRIM( char *in_data ,char c ){ int i,j = 0; char tmp[1024]; memset(tmp,0,sizeof(tmp)); for(i = 0;i < strlen(in_data);i++) { if(in_data[i] != c) tmp[j++] = in_data[i]; } strcpy( in_data , tmp); return TRUE;}int TrimSign( char *buff, char *msg ){ if( strlen(buff) == 0 ) { strcpy(buff," "); return 0; } char *begin, *end; char tmp[100]; memset(tmp, 0, sizeof(tmp) ); begin = end = buff; end = strstr( buff+1, "\"" ); if( end == NULL ) { sprintf( msg, "查找[%s]结束双引号失败!\n", buff); return -1; } memcpy( tmp, begin+1, end-begin-1 ); strcpy( buff ,tmp ); if( strlen(buff) == 0 ) strcpy(buff," "); return 0;}int FormatDat( CIS_BANK_DATA *pCisBankDat, char *retmsg ) { int ret[25]; ret[0] = TrimSign( pCisBankDat->code ,retmsg); ret[1] = TrimSign( pCisBankDat->status ,retmsg); ret[2] = TrimSign( pCisBankDat->type ,retmsg); ret[3] = TrimSign( pCisBankDat->banktype ,retmsg); ret[4] = TrimSign( pCisBankDat->suprlist ,retmsg); ret[5] = TrimSign( pCisBankDat->centcod ,retmsg); ret[6] = TrimSign( pCisBankDat->billcode ,retmsg); ret[7] = TrimSign( pCisBankDat->bankcode ,retmsg); ret[8] = TrimSign( pCisBankDat->ccpc ,retmsg); ret[9] = TrimSign( pCisBankDat->optbank ,retmsg); ret[10] = TrimSign( pCisBankDat->optbankinvdat ,retmsg); ret[11] = TrimSign( pCisBankDat->city ,retmsg); ret[12] = TrimSign( pCisBankDat->bankname ,retmsg); ret[13] = TrimSign( pCisBankDat->simname ,retmsg); ret[14] = TrimSign( pCisBankDat->bankaddr ,retmsg); ret[15] = TrimSign( pCisBankDat->postcode ,retmsg); ret[16] = TrimSign( pCisBankDat->tel ,retmsg); ret[17] = TrimSign( pCisBankDat->linkman ,retmsg); ret[18] = TrimSign( pCisBankDat->email ,retmsg); ret[19] = TrimSign( pCisBankDat->effdate ,retmsg); ret[20] = TrimSign( pCisBankDat->updatedate ,retmsg); ret[21] = TrimSign( pCisBankDat->updatetime ,retmsg); ret[22] = TrimSign( pCisBankDat->alttype ,retmsg); ret[23] = TrimSign( pCisBankDat->updatenum ,retmsg); ret[24] = TrimSign( pCisBankDat->remark ,retmsg);for(int i=0; i<25; i++){ if(ret[i]!=0) { filelog("LoadError.log", "导入数据失败:[%s][%s]\n", pCisBankDat->code , retmsg); printf("\n导入数据[%s]失败:[%s]\n", pCisBankDat->code, retmsg ); return 9; }} return TRUE;}int FormatCisBankClassDat( CIS_BANK_CLASS_DATA *pCisBankDat, char *retmsg ) { int ret[6]; ret[0] = TrimSign( pCisBankDat->code ,retmsg);// printf("ret:[%d]\n", ret[0] ); ret[1] = TrimSign( pCisBankDat->name ,retmsg);// printf("ret:[%d]\n", ret[1] ); ret[2] = TrimSign( pCisBankDat->status ,retmsg);// printf("ret:[%d]\n", ret[2] ); ret[3] = TrimSign( pCisBankDat->update ,retmsg);// printf("ret:[%d]\n", ret[3] ); ret[4] = TrimSign( pCisBankDat->alttype ,retmsg);// printf("ret:[%d]\n", ret[4] ); ret[5] = TrimSign( pCisBankDat->uptime ,retmsg);// printf("ret:[%d]\n", ret[5] );for(int i=0; i<6; i++){ if(ret[i]!=0) { // printf("ret[%d]:[%d]\n", i, ret[i]); filelog("LoadError.log", "导入数据失败:[%s]\n", pCisBankDat->code ); printf("\n导入数据[%s]失败:[%s]\n", pCisBankDat->code, retmsg ); return 9; }} return TRUE;}int FormatNodeDat( CIS_NODE_DATA *pCisBankDat, char *retmsg ) { int ret[11]; ret[0] = TrimSign( pCisBankDat->code ,retmsg);// printf("ret:[%d]\n", ret[0] ); ret[1] = TrimSign( pCisBankDat->name ,retmsg);// printf("ret:[%d]\n", ret[1] ); ret[2] = TrimSign( pCisBankDat->type ,retmsg);// printf("ret:[%d]\n", ret[2] ); ret[3] = TrimSign( pCisBankDat->citycode ,retmsg);// printf("ret:[%d]\n", ret[3] ); ret[4] = TrimSign( pCisBankDat->remark ,retmsg);// printf("ret:[%d]\n", ret[4] ); ret[5] = TrimSign( pCisBankDat->status ,retmsg);// printf("ret:[%d]\n", ret[5] ); ret[6] = TrimSign( pCisBankDat->effdate ,retmsg);// printf("ret:[%d]\n", ret[6] ); ret[7] = TrimSign( pCisBankDat->invdate ,retmsg);// printf("ret:[%d]\n", ret[7] ); ret[8] = TrimSign( pCisBankDat->update ,retmsg);// printf("ret:[%d]\n", ret[8] ); ret[9] = TrimSign( pCisBankDat->alttype ,retmsg);// printf("ret:[%d]\n", ret[9] ); ret[10] = TrimSign( pCisBankDat->uptime ,retmsg);// printf("ret:[%d]\n", ret[10] );for(int i=0; i<11; i++){ if(ret[i]!=0) { // printf("ret[%d]:[%d]\n", i, ret[i]); filelog("LoadError.log", "导入数据失败:[%s]\n", pCisBankDat->code ); printf("\n导入数据[%s]失败:[%s]\n", pCisBankDat->code, retmsg ); return 9; }} return TRUE;}int FormatCityDat( CIS_CITY_DATA *pCisBankDat, char *retmsg ){ int ret[8]; ret[0] = TrimSign( pCisBankDat->code ,retmsg);// printf("ret:[%d]\n", ret[0] ); ret[1] = TrimSign( pCisBankDat->name ,retmsg);// printf("ret:[%d]\n", ret[1] ); ret[2] = TrimSign( pCisBankDat->type ,retmsg);// printf("ret:[%d]\n", ret[2] ); ret[3] = TrimSign( pCisBankDat->remark ,retmsg);// printf("ret:[%d]\n", ret[3] ); ret[4] = TrimSign( pCisBankDat->status ,retmsg);// printf("ret:[%d]\n", ret[4] ); ret[5] = TrimSign( pCisBankDat->update ,retmsg);// printf("ret:[%d]\n", ret[5] ); ret[6] = TrimSign( pCisBankDat->alttype ,retmsg);// printf("ret:[%d]\n", ret[6] ); ret[7] = TrimSign( pCisBankDat->uptime ,retmsg);// printf("ret:[%d]\n", ret[7] );for(int i=0; i<8; i++){ if(ret[i]!=0) { // printf("ret[%d]:[%d]\n", i, ret[i]); filelog("LoadError.log", "导入数据失败:[%s]\n", pCisBankDat->code ); printf("\n导入数据[%s]失败:[%s]\n", pCisBankDat->code, retmsg ); return 9; }} return TRUE;}int FormatRightDat( CIS_RIGHTLIST_DATA *pCisBankDat, char *retmsg ){ int ret[5]; ret[0] = TrimSign( pCisBankDat->code ,retmsg);// printf("ret:[%d]\n", ret[0] ); ret[1] = TrimSign( pCisBankDat->sendgrant ,retmsg);// printf("ret:[%d]\n", ret[1] ); ret[2] = TrimSign( pCisBankDat->recvgrant ,retmsg);// printf("ret:[%d]\n", ret[2] ); ret[3] = TrimSign( pCisBankDat->update ,retmsg);// printf("ret:[%d]\n", ret[5] ); ret[4] = TrimSign( pCisBankDat->uptime ,retmsg);// printf("ret:[%d]\n", ret[7] );for(int i=0; i<5; i++){ if(ret[i]!=0) { // printf("ret[%d]:[%d]\n", i, ret[i]); filelog("LoadError.log", "导入数据失败:[%s]\n", pCisBankDat->code ); printf("\n导入数据[%s]失败:[%s]\n", pCisBankDat->code, retmsg ); return 9; }} return TRUE;}int FormatCommonDat( CIS_COMMON_DATA *pCisBankDat, char *retmsg ){ int ret[8]; ret[0] = TrimSign( pCisBankDat->datcode ,retmsg);// printf("ret:[%d]\n", ret[0] ); ret[1] = TrimSign( pCisBankDat->datname ,retmsg);// printf("ret:[%d]\n", ret[1] ); ret[2] = TrimSign( pCisBankDat->datvalue ,retmsg);// printf("ret:[%d]\n", ret[2] ); ret[3] = TrimSign( pCisBankDat->wdatvalue ,retmsg);// printf("ret:[%d]\n", ret[5] ); ret[4] = TrimSign( pCisBankDat->effdata ,retmsg);// printf("ret:[%d]\n", ret[7] ); ret[5] = TrimSign( pCisBankDat->update ,retmsg);// printf("ret:[%d]\n", ret[7] ); ret[6] = TrimSign( pCisBankDat->uptime ,retmsg);// printf("ret:[%d]\n", ret[7] ); ret[7] = TrimSign( pCisBankDat->remark ,retmsg);// printf("ret:[%d]\n", ret[7] );for(int i=0; i<8; i++){ if(ret[i]!=0) { // printf("ret[%d]:[%d]\n", i, ret[i]); filelog("LoadError.log", "导入数据失败:[%s]\n", pCisBankDat->datcode ); printf("\n导入数据[%s]失败:[%s]\n", pCisBankDat->datcode, retmsg ); return 9; }} return TRUE;}int FormatParameterDat( CIS_PARAMETER_DATA *pCisBankDat, char *retmsg ){ int ret[6]; ret[0] = TrimSign( pCisBankDat->parcode ,retmsg);// printf("ret:[%d]\n", ret[0] ); ret[1] = TrimSign( pCisBankDat->parval ,retmsg);// printf("ret:[%d]\n", ret[1] ); ret[2] = TrimSign( pCisBankDat->pardesc ,retmsg);// printf("ret:[%d]\n", ret[2] ); ret[3] = TrimSign( pCisBankDat->status ,retmsg);// printf("ret:[%d]\n", ret[5] ); ret[4] = TrimSign( pCisBankDat->alttype ,retmsg);// printf("ret:[%d]\n", ret[7] ); ret[5] = TrimSign( pCisBankDat->update ,retmsg);// printf("ret:[%d]\n", ret[7] );for(int i=0; i<6; i++){ if(ret[i]!=0) { // printf("ret[%d]:[%d]\n", i, ret[i]); filelog("LoadError.log", "导入数据失败:[%s]\n", pCisBankDat->parcode ); printf("\n导入数据[%s]失败:[%s]\n", pCisBankDat->parcode, retmsg ); return 9; }} return TRUE;}//连接数据库int connectToDB( char *dbname , char *username , char *passwd , char *wkname){ if(!m_clsSybServer.Open(dbname,username ,passwd)) { filelog(ERRLOG,"连接数据库[%s][%s][%s]失败!\n",dbname,username,passwd); return -1; }// filelog(STEP,"连接数据库[%s][%s][%s]成功!\n",dbname,username,passwd); if(!m_clsSybServer.SetWrkDb(wkname)) { filelog(ERRLOG,"切换数据库[%s]失败!\n" , wkname); return -1; }// filelog(STEP,"切换数据库[%s]成功\n" , wkname); return 0;}//断开数据库连接int disConnectToDB(){ m_clsSybServer.Close(); filelog(STEP,"断开数据库连接!\n"); return 0;}int main(int argc, char* argv[]){/* pid_t pid=-1; pid=fork(); if(pid!=0) { exit(0); }*///变量定义 char fullname[100]; char RetMsg[1024]; int optno; int ret;//用户交互提示 printf("\n提示:导入基础数据不会做删除操作,请确保数据库干净\n"); printf("\n开始进行数据导入前请确认基础数据目录[%s/basicdata]存在!\n", getenv("WORKDIR")); printf("\t1.目录存在继续\t2.目录不存在退出建立该目录\n"); printf("\n请输入:"); scanf("%d", &optno); if( optno < 1 || optno > 2 ) { printf("\n输入非法: 0 > [%d] > 8\n", optno ); return FALSE; } if( optno == 2 ) return FALSE; printf("\n===================开始影像系统基础数据导入===================\n" ); printf("[*****请输入需要导入的基础数据*****]\n" ); printf("\t[1]\t行号数据文件导入文件:\t\tCIS_BANK_DATA.del\n" ); printf("\t[2]\t行号更新信息文件导入文件:\tCIS_BANK_DATA_ASSIST.del\n" ); printf("\t[3]\t行别数据文件导入文件:\t\tCIS_BANKCLASS_DATA.del\n" ); printf("\t[4]\t节点数据文件导入文件:\t\tCIS_NODE_DATA.del\n" ); printf("\t[5]\t城市数据文件导入文件:\t\tCIS_CITY_DATA.del\n" ); printf("\t[6]\t业务权限数据文件导入文件:\tCIS_RIGHTLIST_DATA.del\n" ); printf("\t[7]\t公共数据数据文件导入文件:\tCIS_COMMON_DATA.del\n" ); printf("\t[8]\t参数数据文件导文件:\t\tCIS_PARAMETER_DATA.del\n" ); printf("\t[Delete]退出程序\n"); printf("\n请输入:"); scanf("%d", &optno); if( optno < 1 || optno > 8 ) { printf("\n输入非法: 0 > [%d] > 8\n", optno ); return FALSE; } if( optno == 1 ) sprintf( fullname, "%s/basicdata/CIS_BANK_DATA.del", getenv("WORKDIR") ); if( optno == 2 ) sprintf( fullname, "%s/basicdata/CIS_BANK_DATA_ASSIST.del", getenv("WORKDIR") ); if( optno == 3 ) sprintf( fullname, "%s/basicdata/CIS_BANKCLASS_DATA.del", getenv("WORKDIR") ); if( optno == 4 )
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?