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