📄 cscdr.cpp
字号:
Unlock(); onError(); return -2; } Unlock(); return 0;}int C_MYSQL::DbCSCDRSelect(char* pInSzTableName, char* pWhere, struct S_CSCDR_LOAD** pOutCDR, int *number, struct S_RESULT* pOut){ char szMsg[512]; char GtpName[LEN_TABLENAME + 1]; char GtpId[LEN_SEQ + 1]; char SeqId[LEN_SEQ + 1]; int FlagRead; int FlagRepeat; int FlagR499; int NetworkInitiatedPDPContext; int SystemType; char ServedIMSI[17]; char ServedIMEI[17]; char ServedMSISDN[LEN_ServedMSISDN+1]; char SGSNIPAddress[46]; char MSNetworkCapability[LEN_MSNetworkCapability+1]; char RoutingAreaCode[9]; char LocationAreaCode[17]; char ChargingID[11]; char GGSNAddress[46]; char AccessPointNameNI[64]; int APNSelectionMode; char PDPTypeNumber[9]; char ServedPDPAddress[46]; char RecordOpenTime[LEN_DATETIME + 1]; int SGSNChange; char CauseForRecClosing[3]; char Diagnostics[LEN_Diagnostics+1]; char RecordSequenceNumber[11]; char NodeID[21]; char LocalRecordSequeceNumnber[11]; char AccessPointNameOI[38]; char UnsentDownlinkVolume[11]; char ChargingCharacteristics[LEN_ChargingCharacteristics+1]; int DynamicAddressFlag; /* CAMEL Information*/ char SCFAddress[LEN_SCFAddress+1]; char ServiceKey[LEN_ServiceKey+1]; int DefaultTransacHandling; char CAMELAPNNI[64]; char CAMELAPNOI[38]; char NumberOfDPEncounter[11]; char LevelOfCamelService[4]; char FreeFormatData[161]; int FFDAppendIndicator; int DefaultSMSHandling; char CAMELCallingPartyNumber[15]; char CAMELAccessDestinationSubNumber[44]; char CAMELSMSAdress[21]; char SmsReferenceNumber[9]; char ConsolidationResult[3]; char ChargingCharacterSelectionMode; /* stamp */ char DateCreated[LEN_DATETIME + 1]; char GsnId[11]; char CallDuration[12+1]; char RecordExtensions[LEN_RecordExtensions+1]; char CellIdentity[25]; int AnonyAccessIndicator; struct S_CSCDR_LOAD *pLCLOC = *pOutCDR; int nNumber = 0; char szSQL[SQLMAX]; char szSQL2[SQLMAX]; struct S_CSCDR_LOAD* p2; int j; char * sz ; short id[54]; *number = 0; if(pLCLOC != NULL) { return -1; } snprintf(szSQL2, SQLMAX, "SELECT COUNT(*) FROM %s WHERE %s", pInSzTableName, pWhere); snprintf(szSQL, SQLMAX, "SELECT ""SEQID,""FLAGREAD,""FLAGREPEAT,""FLAGR499,""NETWORKINITIATEDPDPCONTEXT,""SERVEDIMSI,""SERVEDIMEI,""SGSNIPADDRESS,""MSNNETWORKCAPABILITY,""ROUTINGAREACODE,""LOCATIONAREACODE,""CELLIDENTITY," "CHARGINGID,""GGSNADDRESS,""ACCESSPOINTNAMENI,""PDPTYPENUMBER,""SERVEDPDPADDRESS,""DATE_FORMAT(RECORDOPENTIME,'%%Y%%m%%d%%H%%i%%s'),""CALLDURATION,""SGSNCHANGE,""CAUSEFORRECCLOSING,""DIAGNOSITICS,""RECORDSEQUENCENUMBER,""NODEID,""RECORDEXTENSIONS,""LOCALRECORDSEQUECENUMBER,""APNSELECTIONMODE,""ACCESSPOINTNAMEOI,""SERVEDMSISDN,""CHARGINGCHARACTERISTICS,""SYSTEMTYPE,""UNSENTDOWNLINKVOLUMN,""CONSOLIDATIONRESULT,""CHARGINGCHARACTERSELECTIONMODE,""DYNAMICADDRESSFLAG,""SCFADDRESS,""SERVICEKEY,""DEFAULTTRANSACHANDLING,""CAMELAPNNI,""CAMELAPNOI,""NUMBEROFDPENCOUNTER,""LEVELOFCAMELSERVICE,""FREEFORMATDATA,""FFDAPPENDINDICATOR,""DEFAULTSMSHANDLING,""CAMELCALLINGPARTYNUMBER,""CAMELACCESSDESTNO,""CAMELSMSADDRESS,""SMSREFERENCENUMBER,""ANONYACCESSINDICATOR,""DATE_FORMAT(DATECREATED,'%%Y%%m%%d%%H%%i%%s'),""GSNID" " 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_CSCDR_LOAD*nNumber); memset(sz, 0, SIZE_S_CSCDR_LOAD*nNumber); mysql_real_query(myConnect, szSQL, strlen(szSQL)); MYSQL_RES *res_ptr = mysql_store_result(myConnect); if (res_ptr == NULL) { Unlock(); 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_CSCDR_LOAD*)&sz[SIZE_S_CSCDR_LOAD*j]; if (sqlrow[2] != NULL) p2->FlagRepeat=atoi(sqlrow[2]); if (sqlrow[3] != NULL) p2->FlagR499=atoi(sqlrow[3]); if (sqlrow[4] != NULL) p2->NetworkInitiatedPDPContext=atoi(sqlrow[4]); if (sqlrow[30] != NULL) p2->SystemType=atoi(sqlrow[30]); if (sqlrow[5] != NULL) memcpy(p2->ServedIMSI,sqlrow[5],16); if (sqlrow[6] != NULL) memcpy(p2->ServedIMEI,sqlrow[6],16); if (sqlrow[28] != NULL) memcpy(p2->ServedMSISDN,sqlrow[28],LEN_ServedMSISDN); if (sqlrow[7] != NULL) memcpy(p2->SGSNIPAddress,sqlrow[7],45); if (sqlrow[8] != NULL) memcpy(p2->MSNetworkCapability,sqlrow[8],LEN_MSNetworkCapability); if (sqlrow[9] != NULL) memcpy(p2->RoutingAreaCode,sqlrow[9],8); if (sqlrow[10] != NULL) memcpy(p2->LocationAreaCode,sqlrow[10],16); if (sqlrow[12] != NULL) memcpy(p2->ChargingID,sqlrow[12],10); if (sqlrow[13] != NULL) memcpy(p2->GGSNAddress,sqlrow[13],45); if (sqlrow[14] != NULL) memcpy(p2->AccessPointNameNI,sqlrow[14],63); if (sqlrow[26] != NULL) p2->APNSelectionMode=atoi(sqlrow[26]); if (sqlrow[15] != NULL) memcpy(p2->PDPTypeNumber,sqlrow[15],8); if (sqlrow[16] != NULL) memcpy(p2->ServedPDPAddress,sqlrow[16],45); if (sqlrow[17] != NULL) memcpy(p2->RecordOpenTime,sqlrow[17],LEN_DATETIME); if (sqlrow[19] != NULL) p2->SGSNChange=atoi(sqlrow[19]); if (sqlrow[20] != NULL) memcpy(p2->CauseForRecClosing,sqlrow[20],3); if (sqlrow[21] != NULL) memcpy(p2->Diagnostics,sqlrow[21],LEN_Diagnostics); if (sqlrow[22] != NULL) memcpy(p2->RecordSequenceNumber,sqlrow[22],11); if (sqlrow[23] != NULL) memcpy(p2->NodeID,sqlrow[23],20); if (sqlrow[25] != NULL) memcpy(p2->LocalRecordSequeceNumnber,sqlrow[25],11); if (sqlrow[27] != NULL) memcpy(p2->AccessPointNameOI,sqlrow[27],37); if (sqlrow[31] != NULL) memcpy(p2->UnsentDownlinkVolume,sqlrow[31],10); if (sqlrow[29] != NULL) memcpy(p2->ChargingCharacteristics,sqlrow[29],LEN_ChargingCharacteristics); if (sqlrow[34] != NULL) p2->DynamicAddressFlag=atoi(sqlrow[34]); if (sqlrow[32] != NULL) memcpy(p2->ConsolidationResult,sqlrow[32],2); if (sqlrow[33] != NULL) p2->ChargingCharacterSelectionMode=atoi(sqlrow[33]); if (sqlrow[50] != NULL) memcpy(p2->DateCreated,sqlrow[50],LEN_DATETIME); if (sqlrow[51] != NULL) memcpy(p2->GsnId,sqlrow[51],10); if (sqlrow[35] != NULL) memcpy(p2->SCFAddress,sqlrow[35],LEN_SCFAddress+1); if (sqlrow[36] != NULL) memcpy(p2->ServiceKey,sqlrow[36],LEN_ServiceKey); if (sqlrow[37] != NULL) p2->DefaultTransacHandling=atoi(sqlrow[37]); if (sqlrow[38] != NULL) memcpy(p2->CAMELAPNNI,sqlrow[38],63); if (sqlrow[39] != NULL) memcpy(p2->CAMELAPNOI,sqlrow[39],37); if (sqlrow[40] != NULL) memcpy(p2->NumberOfDPEncounter,sqlrow[40],11); if (sqlrow[41] != NULL) memcpy(p2->LevelOfCamelService,sqlrow[41],3); if (sqlrow[42] != NULL) memcpy(p2->FreeFormatData,sqlrow[42],160); if (sqlrow[43] != NULL) p2->FFDAppendIndicator=atoi(sqlrow[43]); if (sqlrow[44] != NULL) p2->DefaultSMSHandling=atoi(sqlrow[44]); if (sqlrow[45] != NULL) memcpy(p2->CAMELCallingPartyNumber,sqlrow[45],14); if (sqlrow[46] != NULL) memcpy(p2->CAMELAccessDestinationSubNumber,sqlrow[46],43); if (sqlrow[47] != NULL) memcpy(p2->CAMELSMSAdress,sqlrow[47],20); if (sqlrow[48] != NULL) memcpy(p2->SmsReferenceNumber,sqlrow[48],8); if (sqlrow[0] != NULL) memcpy(p2->SeqId,sqlrow[0],20); if (sqlrow[1] != NULL) p2->FlagRead=atoi(sqlrow[1]); if (sqlrow[18] != NULL) memcpy(p2->CallDuration,sqlrow[18],12);if (sqlrow[24] != NULL) memcpy(p2->RecordExtensions,sqlrow[24],LEN_RecordExtensions);if (sqlrow[11] != NULL) memcpy(p2->CellIdentity,sqlrow[11],24);if (sqlrow[49] != NULL) p2->AnonyAccessIndicator = atoi(sqlrow[49]); 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)); */ // printf("%s\n", p2->SeqId); } * pOutCDR = (struct S_CSCDR_LOAD*)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 + -