⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 omtcdr.cpp

📁 Mysql的处理
💻 CPP
字号:
#include "oradb.h"/*********************************************************      filename							:OMTCDR.pc*			 function descrpition	:insert data into database OMTCDRxxxxxxxxxx *			 input								:struct S_OMTCDR *	*			 output								:SQL_OK ( operation sucess) SQL_RET_ERRO (operation failed)*			 date									:2006-05-22**********************************************************/void C_MYSQL::DbOMTCDRTest(){	S_OMTCDR pIn6; 	S_RESULT pOut6;	memset(&pIn6,0,sizeof(pIn6));	pIn6.RecordType=2;	memcpy(pIn6.ServedIMSI,"111111111111",5);	memcpy(pIn6.ServedIMEI,"111111111111",5);	snprintf(pIn6.ServedMSISDN,LEN_ServedMSISDN+1,"2");	snprintf(pIn6.MSNetworkCapability,LEN_MSNetworkCapability+1,"2");	memcpy(pIn6.ServiceCenter,"11111111111",5);	memcpy(pIn6.RecordingEntity,"11111111111",5);	memcpy(pIn6.LocationAreaCode,"111111111111",5);	memcpy(pIn6.RoutingAreaCode,"1111111111",5);	memcpy(pIn6.CellIdentity,"11111111111",5);	snprintf(pIn6.EventStampTime,LEN_DATETIME + 1,"2");	pIn6.SMSResult=2;	snprintf(pIn6.RecordExtensions,LEN_RecordExtensions+1,"2");	snprintf(pIn6.NodeID,LEN_NodeID+1,"2");	memcpy(pIn6.LocalRecordSequeceNumnber,"11111111111111",5);	snprintf(pIn6.ChargingCharacteristics,LEN_ChargingCharacteristics+1,"2");	pIn6.SystemType=2;	snprintf(pIn6.GsnIpAddr,LEN_IpAddr+1,"2");	pIn6.FlagRead=2;	snprintf(pIn6.SeqId,LEN_SEQ + 1,"2");	snprintf(pIn6.GtpName,LEN_TABLENAME + 1,"2");	snprintf(pIn6.GtpId,LEN_SEQ + 1,"2");	pIn6.FlagRepeat=2;	pIn6.FlagR499=2;	snprintf(pIn6.GsnId,LEN_GSNID+1,"2");	snprintf(pIn6.TableName,LEN_TABLENAME + 1,"OMTCDR");	pIn6.ChargingCharacterSelectionMode=2;	DbOMTCDRInsert(&pIn6, &pOut6);}int C_MYSQL::DbOMTCDRInsert(struct S_OMTCDR* pIn, struct S_RESULT* pOut){/*        get info           */	char *GtpName=(char *)pIn->GtpName;	char *GtpId=(char *)pIn->GtpId;	int RecordType=pIn->RecordType;	int FlagRead = pIn->FlagRead;	int FlagRepeat=pIn->FlagRepeat;	int FlagR499=pIn->FlagR499;	char *ServedIMSI=(char *)pIn->ServedIMSI;	char  *ServedIMEI=(char *)pIn->ServedIMEI;	char  *ServedMSISDN=(char *)pIn->ServedMSISDN;	char  *MSNetworkCapability=(char *)pIn->MSNetworkCapability;	char  *RoutingAreaCode=(char *)pIn->RoutingAreaCode;	char  *LocationAreaCode=(char *)pIn->LocationAreaCode;	char  *CellIdentity=(char *)pIn->CellIdentity;	char  *ServiceCenter=(char *)pIn->ServiceCenter;	char *RecordingEntity	= (char*)pIn->RecordingEntity;	char  *EventStampTime=(char *)pIn->EventStampTime;	/*char*/int SystemType=pIn->SystemType;/*	char* MessageReference = pIn->MessageReference;*/	/*char*/int SMSResult=pIn->SMSResult;	char  *NodeID=(char *)pIn->NodeID;	char *ChargingCharacteristics=(char *)pIn->ChargingCharacteristics;	char *LocalRecordSequeceNumnber=(char *)pIn->LocalRecordSequeceNumnber;	char  *GsnId=(char *)pIn->GsnId;	char szMsg[512];	char szSQL[SQLMAX];	char SeqId[LEN_SEQ + 1];	char  *TableName=(char *)pIn->TableName;		char *RecordExtensions = pIn->RecordExtensions;#ifdef EXT10mt	int ChargingCharacterSelectionMode = pIn->ChargingCharacterSelectionMode;#endif	/* peer ip */	char *GsnIpAddr = pIn->GsnIpAddr;		/* 	EXEC SQL BEGIN DECLARE SECTION;	EXEC SQL VAR SeqId IS STRING(LEN_SEQ + 1);	EXEC SQL END DECLARE SECTION;	EXEC SQL WHENEVER SQLERROR GOTO sql_error; 	EXEC SQL SELECT SEQ_OMTCDR.NEXTVAL 	INTO :SeqId 	FROM DUAL;	/*     PART 2 INSERT STATEMENT           *//*snprintf(szSQL,SQLMAX,"INSERT INTO %s (""SEQID,GTPID,GTPLTABLE,FLAGR499,"                 "SERVEDIMSI,SERVEDIMEI,SERVEDMSISDN,MSNNETWORKCAPABILITY,"     "SERVICECENTER,ROUTINGAREACODE,LOCATIONAREACODE,EVENTSTAMPTIME,"           "SMSRESULT,NODEID,LOCALRECORDSEQUECENUMBER,CHARGINGCHARACTERISTICS,"  "SYSTEMTYPE,DATECREATED,GSNID,FLAGREAD,RECORDINGENTITY) VALUES(" "'%s','%s','%s',%d,"   "'%s','%s','%s','%s'," "'%s','%s','%s',TO_DATE('%s','YYYYMMDDHH24MISS')," "%d ,'%s','%s','%s',"   "%d ,SYSDATE,'%s',%d,""'%s')",TableName,SeqId,     GtpId,GtpName,FlagR499,                                 ServedIMSI,ServedIMEI,ServedMSISDN,MSNetworkCapability,                ServiceCenter,RoutingAreaCode,LocationAreaCode,EventStampTime,SMSResult,NodeID,LocalRecordSequeceNumnber,ChargingCharacteristics,SystemType,GsnId,FlagRead,RecordingEntity);                             #ifdef _DEBUG	logOra(sErrLog, szSQL);#endif*/snprintf(szSQL,SQLMAX,"INSERT INTO %s (""GTPID,GTPLTABLE,FLAGR499,"                 "FLAGREPEAT,"                  "SERVEDIMSI,SERVEDIMEI,SERVEDMSISDN,MSNNETWORKCAPABILITY,"     "SERVICECENTER,ROUTINGAREACODE,LOCATIONAREACODE,EVENTSTAMPTIME,"           "SMSRESULT,NODEID,LOCALRECORDSEQUECENUMBER,CHARGINGCHARACTERISTICS,"  "SYSTEMTYPE,DATECREATED,GSNID,FLAGREAD,RECORDINGENTITY"#ifdef EXT10mt",RECORDEXTENSIONS"",CHARGINGCHARACTERSELECTIONMODE"",CELLIDENTITY"#endif",GSNIPADDR"") VALUES(" "%s,'%s',%d," "%d,"  "'%s','%s','%s','%s'," "'%s','%s','%s','%s'," "%d ,'%s',%s,'%s',"   "%d ,NOW(),%s,%d,'%s'"#ifdef EXT10mt",'%s'"",%d"",'%s'"#endif",'%s'"")",TableName,GtpId[0]==0?"NULL":GtpId,GtpName,FlagR499,FlagRepeat,                                ServedIMSI,ServedIMEI,ServedMSISDN,MSNetworkCapability,                ServiceCenter,RoutingAreaCode,LocationAreaCode,EventStampTime,SMSResult,NodeID,LocalRecordSequeceNumnber[0]==0?"NULL":LocalRecordSequeceNumnber,ChargingCharacteristics,SystemType,GsnId[0]==0?"NULL":GsnId,FlagRead,RecordingEntity#ifdef EXT10mt,RecordExtensions,ChargingCharacterSelectionMode,CellIdentity#endif,GsnIpAddr);                             #ifdef _DEBUG	logOra(sErrLog, szSQL);#endif		Lock();	int res = mysql_real_query(myConnect, szSQL, strlen(szSQL));	if(res != 0)	{		Unlock();		logOra(sErrLog, "%d %s\n", mysql_errno(myConnect), mysql_error(myConnect));		return -1;	}	if(GetSeq(pIn->SeqId) != 0)	{		Unlock();		logOra(sErrLog, "%d %s\n", mysql_errno(myConnect), mysql_error(myConnect));		return -2;	}	Unlock();	return 0;}int C_MYSQL::DbOMTCDRSelect(char* pInSzTableName, char* pWhere, struct S_OMTCDR** pOutCDR, int *nItems, struct S_RESULT* pOut){	short ind[59];	short id[2];	int RecordType;	char SeqId[LEN_SEQ + 1];	char GtpName[LEN_TABLENAME + 1];	char GtpId[LEN_SEQ + 1];		int FlagRead;	int FlagRepeat;	int FlagR499;	char ServedIMSI[17];	char ServedIMEI[17];	char ServedMSISDN[LEN_ServedMSISDN+1];	char MSNetworkCapability[LEN_MSNetworkCapability+1];	char RoutingAreaCode[9];	char LocationAreaCode[17];	char CellIdentity[25];	char ServiceCenter[21];	char RecordingEntity[21];	char EventStampTime[LEN_DATETIME + 1];	int SystemType;/*	char SystemType;/*	char MessageReference[256];*//*	char SMSResult;*/	int SMSResult;	char NodeID[21];	char ChargingCharacteristics[LEN_ChargingCharacteristics+1];	char LocalRecordSequeceNumnber[11];	char DateCreated[LEN_DATETIME + 1];	char GsnId[11];			char RecordExtensions[LEN_RecordExtensions+1];	int ChargingCharacterSelectionMode;	char GsnIpAddr[LEN_IpAddr+1];	/* result */	struct S_OMTCDR *pOMTCDR=*pOutCDR ;	int nNumber = 0;	char szMsg[512];	char szSQL[SQLMAX];	char szSQL2[SQLMAX];	char szSQL3[SQLMAX];	struct S_OMTCDR* p2;	int j;	char * sz ;	*nItems=0;	if(pOMTCDR != NULL)	{		return -1;	}	snprintf(szSQL2, SQLMAX, 		"SELECT COUNT(*) FROM %s WHERE %s",		pInSzTableName,pWhere);				snprintf(szSQL,SQLMAX,"SELECT ""SEQID,""FLAGREAD,""GTPID,""GTPLTABLE,""MERGEID,""MERGETABLE,""FLAGREPEAT,""FLAGR499,""SERVEDIMSI,""SERVEDIMEI,""SERVEDMSISDN,""MSNNETWORKCAPABILITY,""SERVICECENTER,""RECORDINGENTITY,""LOCATIONAREACODE,""ROUTINGAREACODE,""CELLIDENTITY,""DATE_FORMAT(EVENTSTAMPTIME,'%%Y%%m%%d%%H%%i%%s'),""MESSAGEREFRENCE,""SMSRESULT,""RECORDEXTENSIONS,""NODEID,""LOCALRECORDSEQUECENUMBER,""CHARGINGCHARACTERISTICS,""SYSTEMTYPE,""CHARGINGCHARACTERSELECTIONMODE,""DATE_FORMAT(DATECREATED,'%%Y%%m%%d%%H%%i%%s'),""GSNID,""GSNIPADDR"" FROM %s WHERE %s",pInSzTableName,pWhere);		#ifdef _DEBUG#ifdef LOG_SELECT	logOra(sErrLog, szSQL);#endif#endif	Lock();	nNumber=DbCount(szSQL2,myConnect);    	if(nNumber <= 0)	{		Unlock();	* nItems = 0;		return 0;	}	sz = (char *)malloc(SIZE_S_OMTCDR*nNumber);	memset(sz, 0, SIZE_S_OMTCDR*nNumber);	mysql_real_query(myConnect, szSQL, strlen(szSQL));	MYSQL_RES *res_ptr = mysql_store_result(myConnect);	if (res_ptr == NULL) 	{		return -1;	}	MYSQL_ROW sqlrow;#ifdef _DEBUG	logOra(sErrLog, "CURSOR...");#endif	for(j=0;j<nNumber;j++)	{		 sqlrow = mysql_fetch_row(res_ptr);		 p2 = (struct S_OMTCDR* )&sz[SIZE_S_OMTCDR*j];//		 p2->RecordType=RecordType;			 if (sqlrow[0] != NULL) memcpy(p2->SeqId,sqlrow[0],LEN_SEQ);                                          		 if (sqlrow[2] != NULL) memcpy(p2->GtpId,sqlrow[2],LEN_SEQ);																						//		 memcpy(p2->GtpName,GtpName,LEN_TABLENAME);                                     		 if (sqlrow[7] != NULL) p2->FlagR499=atoi(sqlrow[7]);                                         			 		 if (sqlrow[8] != NULL) memcpy(p2->ServedIMSI,sqlrow[8],LEN_ServedIMSI);                                     		 if (sqlrow[9] != NULL) memcpy(p2->ServedIMEI,sqlrow[9],LEN_ServedIMSI);                                     		 if (sqlrow[10] != NULL) memcpy(p2->ServedMSISDN,sqlrow[10],LEN_ServedMSISDN);                                 		 if (sqlrow[11] != NULL) memcpy(p2->MSNetworkCapability,sqlrow[11],LEN_MSNetworkCapability);                   			 		 if (sqlrow[12] != NULL) memcpy(p2->ServiceCenter,sqlrow[12],21);                                 		 if (sqlrow[15] != NULL) memcpy(p2->RoutingAreaCode,sqlrow[15],9);                           			 if (sqlrow[14] != NULL) memcpy(p2->LocationAreaCode,sqlrow[14],17);                         		 if (sqlrow[17] != NULL) memcpy(p2->EventStampTime,sqlrow[17],LEN_DATETIME);                                 		 		 if (sqlrow[19] != NULL) p2->SMSResult=atoi(sqlrow[19]);		 if (sqlrow[21] != NULL) memcpy(p2->NodeID,sqlrow[21],21);		 if (sqlrow[22] != NULL) memcpy(p2->LocalRecordSequeceNumnber,sqlrow[22],11);       			 if (sqlrow[23] != NULL) memcpy(p2->ChargingCharacteristics,sqlrow[23],LEN_ChargingCharacteristics);           			 if (sqlrow[24] != NULL) p2->SystemType=atoi(sqlrow[24]);                                     			 if (sqlrow[27] != NULL) memcpy(p2->GsnId,sqlrow[27],11);                                                                            		if (sqlrow[1] != NULL) p2->FlagRead=atoi(sqlrow[1]);	if (sqlrow[13] != NULL) memcpy(p2->RecordingEntity,sqlrow[13],20);if (sqlrow[20] != NULL) memcpy(p2->RecordExtensions,sqlrow[20],LEN_RecordExtensions);if (sqlrow[25] != NULL) p2->ChargingCharacterSelectionMode=atoi(sqlrow[25]);if (sqlrow[24] != NULL) memcpy(p2->CellIdentity,sqlrow[16],24);if (sqlrow[28] != NULL) 	memcpy(p2->GsnIpAddr,sqlrow[28],LEN_IpAddr);if (pInSzTableName != NULL) 	memcpy(p2->TableName, pInSzTableName, LEN_TABLENAME);		snprintf(szSQL3, SQLMAX, 					"UPDATE %s SET FLAGREAD=1 WHERE SEQID='%s'", 					p2->TableName, p2->SeqId);		mysql_real_query(myConnect, szSQL3, strlen(szSQL3));//		EXEC SQL EXECUTE IMMEDIATE :szSQL3;		logOra(sErrLog, szSQL3);	}                                                                           	                                                                          		* pOutCDR = (struct S_OMTCDR* )sz;                                               		* nItems = nNumber;	                                                     		mysql_free_result(res_ptr);		if (mysql_errno(myConnect)) 	{		Unlock();		return -1;	}		Unlock();		return 0;}

⌨️ 快捷键说明

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