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

📄 ogcdr.cpp

📁 Mysql的处理
💻 CPP
字号:
#include "oradb.h"void C_MYSQL::DbOGCDRTest(){	S_OGCDR pIn2;	S_RESULT pOut2;	memset(&pIn2,0,sizeof(pIn2));	pIn2.RecordType=2;	pIn2.NetworkInitiatedPDPContext=2;	memcpy(pIn2.ServedIMSI,"11111111111111111111111111111111",12);    memcpy(pIn2.GGSNAddress,"11111111111111111111111111111111",12);	memcpy(pIn2.ChargingID,"11111111111111111111111111111111",10);    snprintf(pIn2.SGSNIPAddress, LEN_IpAddr+1, "255.255");	memcpy(pIn2.AccessPointNameNI,"11111111111111111111111111111111",12);	memcpy(pIn2.PDPTypeNumber,"11111111111111111111111111111111",12);	memcpy(pIn2.ServedPDPAddress,"11111111111111111111111111111111",12);	pIn2.DynamicAddressFlag='A';    snprintf(pIn2.RecordOpenTime, LEN_DATETIME+1, "200682");    memcpy(pIn2.CallDuration,"11111111111111111111111111111111",12);	memcpy(pIn2.CauseForRecClosing,"111",2);    snprintf(pIn2.Diagnostics,LEN_Diagnostics+1, "123");	memcpy(pIn2.RecordSequenceNumber,"11111111111111111111111111111111",10);    snprintf(pIn2.NodeID,LEN_NodeID+1, "AAA");    memcpy(pIn2.LocalRecordSequeceNumnber,"11111111111111111111111111111111",10);    pIn2.APNSelectionMode=2;    snprintf(pIn2.ServedMSISDN,LEN_ServedMSISDN+1, "123");	snprintf(pIn2.ChargingCharacteristics,LEN_ChargingCharacteristics+1, "123");	snprintf(pIn2.GtpName,LEN_TABLENAME + 1, "123");    snprintf(pIn2.GtpId,LEN_SEQ + 1, "123");    snprintf(pIn2.MergeName,LEN_TABLENAME + 1, "123");    snprintf(pIn2.MergeId,LEN_SEQ + 1, "123");	pIn2.FlagRepeat=2;	pIn2.FlagR499=2;    snprintf(pIn2.GsnId,LEN_GSNID+1, "123");    snprintf(pIn2.TableName,LEN_TABLENAME + 1, "OGCDR");    pIn2.FlagRead=2;	snprintf(pIn2.Diagnostics,2,"12");	pIn2.ChargingCharacterSelectionMode=2;	snprintf(pIn2.SgsnPlmnIdentifier,LEN_SgsnPlmnIdentifier+1, "123");	pIn2.AnonyAccessIndicator=2;    memcpy(pIn2.RemotePdpAddr,"11111111111111111111111111111111",10);    	DbOGCDRInsert(&pIn2, &pOut2);	}int C_MYSQL::DbOGCDRInsert(struct S_OGCDR* p, struct S_RESULT* pOut){	char szMsg[512];	char* TableName = p->TableName;	char* SeqId = p->SeqId;	char *GtpName=(char *)p->GtpName;	char *GtpId=(char *)p->GtpId;		int FlagRead = p->FlagRead;	/*1*/	int FlagRepeat = p->FlagRepeat;	int FlagR499 = p->FlagR499;	int NetworkInitiatedPDPContext = p->NetworkInitiatedPDPContext;	/*2*/	char *ServedIMSI = p->ServedIMSI;	char *ServedMSISDN = p->ServedMSISDN;	char *SGSNIPAddress = p->SGSNIPAddress;		/*3*/	char*  ChargingID = p->ChargingID;	char *GGSNAddress = p->GGSNAddress;	char *AccessPointNameNI = p->AccessPointNameNI;		/*4*/	int APNSelectionMode = p->APNSelectionMode;	char *PDPTypeNumber = p->PDPTypeNumber;	char *ServedPDPAddress = p->ServedPDPAddress;	char *RecordOpenTime = p->RecordOpenTime;	char *CallDuration = p->CallDuration;		/*5*/	char* CauseForRecClosing = p->CauseForRecClosing;	char *Diagnostics = p->Diagnostics;	char* RecordSequenceNumber = p->RecordSequenceNumber;	char *NodeID = p->NodeID;	char* LocalRecordSequeceNumnber = p->LocalRecordSequeceNumnber;		/*6*/	char* ChargingCharacteristics = p->ChargingCharacteristics;	int DynamicAddressFlag = p->DynamicAddressFlag;	/*int ConsolidationResult = p->ConsolidationResult;	int ChargingCharacterSelectionMode = p->ChargingCharacterSelectionMode;*/	/* stamp */	char *DateCreated = p->DateCreated;	/*10*/	char *GsnId = p->GsnId;/*	char *RecordExtensions = p->RecordExtensions;*/#ifdef EXT10og	int ChargingCharacterSelectionMode = p->ChargingCharacterSelectionMode;	char *SgsnPlmnIdentifier = p->SgsnPlmnIdentifier; /* both for R4 & R99*/	int	AnonyAccessIndicator = p->AnonyAccessIndicator; /* only for R4 */	char *RemotePdpAddr = p->RemotePdpAddr; /* only for R4 */#endif	char szSQL[SQLMAX];	char szSeqId[LEN_SEQ+1];	memset(szSQL,0,SQLMAX);	memset(szSeqId,0,LEN_SEQ+1);	snprintf(szSQL, SQLMAX, "INSERT INTO %s (""FLAGREPEAT," "FLAGR499," "NETWORKINITIATEDPDPCONTEXT,""SERVEDIMSI," "SERVEDMSISDN," "SGSNIPADDRESS," "CHARGINGID," "GGSNADDRESS," "ACCESSPOINTNAMENI,""APNSELECTIONMODE," "PDPTYPENUMBER," "SERVEDPDPADDRESS," "RECORDOPENTIME,""CAUSEFORRECCLOSING," "DIAGNOSITICS," "RECORDSEQUENCENUMBER," "NODEID," "LOCALRECORDSEQUECENUMBER,""CHARGINGCHARACTERISTICS," "DYNAMICADDRESSFLAG," "DATECREATED,""CALLDURATION,""GTPID,GTPLTABLE,""GSNID,FLAGREAD"#ifdef EXT10og",CHARGINGCHARACTERSELECTIONMODE"",SGSNPLMNIDENTIFIER"",ANONYMOUSACCESSINDICATOR"",REMOTEPDPADDRESS"#endif	") VALUES("				"%d,%d,%d,"					"'%s','%s','%s',"					"%s,'%s','%s',"					"%d,'%s','%s','%s',"					"%s,%s,%s,'%s',%s,"					"'%s',%d,"					"NOW(),"					"%s,"					"%s,'%s',"					"%s,%d"					#ifdef EXT10og					",%d"                    ",'%s'"					",%d"					",'%s'"					#endif					")",					   TableName,	FlagRepeat,	FlagR499,	NetworkInitiatedPDPContext,		ServedIMSI,	ServedMSISDN,	SGSNIPAddress,	ChargingID[0]==0?"NULL":ChargingID,	GGSNAddress,	AccessPointNameNI,		APNSelectionMode,	PDPTypeNumber,	ServedPDPAddress,	RecordOpenTime,		CauseForRecClosing[0]==0?"NULL":CauseForRecClosing,	Diagnostics[0]==0?"NULL":Diagnostics,	RecordSequenceNumber[0]==0?"NULL":RecordSequenceNumber,	NodeID,	LocalRecordSequeceNumnber[0]==0?"NULL":LocalRecordSequeceNumnber,	ChargingCharacteristics,	DynamicAddressFlag,  	CallDuration[0]==0?"NULL":CallDuration,     GtpId[0]==0?"NULL":GtpId,GtpName,	 GsnId[0]==0?"NULL":GsnId,FlagRead#ifdef EXT10og	 	 ,ChargingCharacterSelectionMode	 ,SgsnPlmnIdentifier	 ,AnonyAccessIndicator	 ,RemotePdpAddr#endif					);					#ifdef _DEBUG	logOra(sErrLog, szSQL);#endif		Lock();	int res = mysql_real_query(myConnect, szSQL, strlen(szSQL));	if(res != 0)	{		Unlock();		onError();		return -1;	}	if(GetSeq(p->SeqId) != 0)	{		Unlock();		onError();		return -2;	}	Unlock();		return 0;}int C_MYSQL::DbOGCDRSelect(char* pInSzTableName, char* pWhere, struct S_OGCDR** pOutCDR, int *number, struct S_RESULT* pOut){	char szMsg[512];	char SeqId[LEN_SEQ + 1];	char GtpName[LEN_TABLENAME + 1];	char GtpId[LEN_SEQ + 1];			int FlagRead;	int FlagRepeat;	int FlagR499;	int NetworkInitiatedPDPContext;	char ServedIMSI[17];	char ServedMSISDN[LEN_ServedMSISDN+1];	char SGSNIPAddress[46];	char CellIdentity[25];	char ChargingID[13];	char GGSNAddress[46];	char AccessPointNameNI[64];	int APNSelectionMode;	char PDPTypeNumber[9];	char ServedPDPAddress[46];	char RecordOpenTime[LEN_DATETIME + 1];	char CallDuration[13];/*	int SGSNChange;*/	char CauseForRecClosing[3];	char Diagnostics[LEN_Diagnostics+1];	char RecordSequenceNumber[11];	char NodeID[21];	char LocalRecordSequeceNumnber[11];	char ChargingCharacteristics[LEN_ChargingCharacteristics+1];	int DynamicAddressFlag;		int ConsolidationResult;	char DateCreated[LEN_DATETIME + 1];	char GsnId[11];/*	char RecordExtensions[LEN_RecordExtensions+1];*/	int ChargingCharacterSelectionMode;	char		SgsnPlmnIdentifier[LEN_SgsnPlmnIdentifier+1]; /* both for R4 & R99*/	int		AnonyAccessIndicator; /* only for R4 */	char		RemotePdpAddr[45+1]; /* only for R4 */		struct S_OGCDR *pLCLOC = *pOutCDR;	int nNumber = 0;	char szSQL[SQLMAX];	char szSQL2[SQLMAX];	char szSQL3[SQLMAX];	struct S_OGCDR* p2;	int j;	char * sz ;	short id[40];	*number = 0;	if(pLCLOC != 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,""NETWORKINITIATEDPDPCONTEXT,""SERVEDIMSI,""GGSNADDRESS,""CHARGINGID,""SGSNIPADDRESS,""ACCESSPOINTNAMENI,""PDPTYPENUMBER,""SERVEDPDPADDRESS,""DYNAMICADDRESSFLAG,""RECORDOPENTIME,""CALLDURATION,""CAUSEFORRECCLOSING,""DIAGNOSITICS,""RECORDSEQUENCENUMBER,""NODEID,""RECORDEXTENSIONS,""LOCALRECORDSEQUECENUMBER,""APNSELECTIONMODE,""SERVEDMSISDN,""CHARGINGCHARACTERISTICS,""SGSNPLMNIDENTIFIER,""CHARGINGCHARACTERSELECTIONMODE,""ANONYMOUSACCESSINDICATOR,""REMOTEPDPADDRESS,""GSNID,"//"DATECREATED""DATE_FORMAT(DATECREATED,'%%Y%%m%%d%%H%%i%%s')"		" 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();		* number = 0;		return 0;	}	sz = (char *)malloc(SIZE_S_OGCDR*nNumber);	memset(sz, 0, SIZE_S_OGCDR*nNumber);	mysql_real_query(myConnect, szSQL, strlen(szSQL));	MYSQL_RES *res_ptr = mysql_store_result(myConnect);	if (res_ptr == NULL) 	{		onError();		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_OGCDR*)&sz[SIZE_S_OGCDR*j];		if (sqlrow[6] != NULL) p2->FlagRepeat=atoi(sqlrow[6]);	if (sqlrow[7] != NULL) p2->FlagR499=atoi(sqlrow[7]);	if (sqlrow[8] != NULL) p2->NetworkInitiatedPDPContext=atoi(sqlrow[8]);	if (sqlrow[9] != NULL) memcpy(p2->ServedIMSI,sqlrow[9],16);	if (sqlrow[26] != NULL) memcpy(p2->ServedMSISDN,sqlrow[26],LEN_ServedMSISDN);	if (sqlrow[12] != NULL) memcpy(p2->SGSNIPAddress,sqlrow[12],45);	if (sqlrow[11] != NULL) memcpy(p2->ChargingID,sqlrow[11],sizeof(p2->ChargingID));	if (sqlrow[10] != NULL) memcpy(p2->GGSNAddress,sqlrow[10],45);	if (sqlrow[13] != NULL) memcpy(p2->AccessPointNameNI,sqlrow[13],63);	if (sqlrow[25] != NULL) p2->APNSelectionMode=atoi(sqlrow[25]);	if (sqlrow[14] != NULL) memcpy(p2->PDPTypeNumber,sqlrow[14],8);	if (sqlrow[15] != NULL) memcpy(p2->ServedPDPAddress,sqlrow[15],45);	if (sqlrow[17] != NULL) memcpy(p2->RecordOpenTime,sqlrow[17],LEN_DATETIME);	if (sqlrow[18] != NULL) memcpy(p2->CallDuration,sqlrow[18],13);	if (sqlrow[19] != NULL) memcpy(p2->CauseForRecClosing,sqlrow[19],3);	if (sqlrow[20] != NULL) memcpy(p2->Diagnostics,sqlrow[20],LEN_Diagnostics);	if (sqlrow[21] != NULL) memcpy(p2->RecordSequenceNumber,sqlrow[21],11);	if (sqlrow[22] != NULL) memcpy(p2->NodeID,sqlrow[22],20);	if (sqlrow[24] != NULL) memcpy(p2->LocalRecordSequeceNumnber,sqlrow[24],11);	if (sqlrow[27] != NULL) memcpy(p2->ChargingCharacteristics,sqlrow[27],LEN_ChargingCharacteristics);	if (sqlrow[16] != NULL) p2->DynamicAddressFlag=atoi(sqlrow[16]);		if (sqlrow[33] != NULL) memcpy(p2->DateCreated,sqlrow[33],LEN_DATETIME);	if (sqlrow[32] != NULL) memcpy(p2->GsnId,sqlrow[32],10);	if (sqlrow[0] != NULL) memcpy(p2->SeqId,sqlrow[0],10);	if (sqlrow[2] != NULL) memcpy(p2->GtpId,sqlrow[2],LEN_SEQ);				if (sqlrow[3] != NULL) memcpy(p2->GtpName,sqlrow[3],LEN_TABLENAME);                     	        	if (sqlrow[1] != NULL) p2->FlagRead=atoi(sqlrow[1]);if (sqlrow[29] != NULL) p2->ChargingCharacterSelectionMode=atoi(sqlrow[29]);if (sqlrow[28] != NULL) memcpy(p2->SgsnPlmnIdentifier,sqlrow[28],LEN_SgsnPlmnIdentifier);if (sqlrow[30] != NULL) p2->AnonyAccessIndicator = atoi(sqlrow[30]);if (sqlrow[31] != NULL) memcpy(p2->RemotePdpAddr, sqlrow[31], 45);		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));	}		* pOutCDR = (struct S_OGCDR*)sz;	* number = nNumber;			mysql_free_result(res_ptr);		if (mysql_errno(myConnect)) 	{		Unlock();		onError();		return -1;	}	Unlock();	return 0;}

⌨️ 快捷键说明

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