?? omcdr.cpp
字號(hào):
char DefaultTransacHandling; char CAMELAPNNI[64]; char CAMELAPNOI[38]; char NumberOfDPEncounter[11]; char LevelOfCamelService[4]; char FreeFormatData[161]; char FFDAppendIndicator; char DefaultSMSHandling; char CAMELCallingPartyNumber[15]; char CAMELAccessDestinationSubNumber[44]; char CAMELSMSAdress[21]; char SmsReferenceNumber[9]; char DateCreated[LEN_DATETIME + 1]; char GsnId[11]; char NodeId[21]; char RecordExtensions[LEN_RecordExtensions+1]; int ChargingCharacterSelectionMode; char ChargingCharacteristics[LEN_ChargingCharacteristics+1];/* EXEC SQL BEGIN DECLARE SECTION; EXEC SQL VAR Diagnostics IS STRING(LEN_Diagnostics + 1); EXEC SQL VAR ChargingCharacteristics IS STRING(LEN_ChargingCharacteristics+1); EXEC SQL VAR RecordExtensions IS STRING(LEN_RecordExtensions + 1); EXEC SQL VAR SeqId IS STRING(LEN_SEQ + 1); EXEC SQL VAR GtpName IS STRING(LEN_TABLENAME + 1); EXEC SQL VAR GtpId IS STRING(LEN_SEQ + 1); EXEC SQL VAR ServedIMSI IS STRING(17); EXEC SQL VAR ServedIMEI IS STRING(17); EXEC SQL VAR ServedMSISDN IS STRING(LEN_ServedMSISDN+1); EXEC SQL VAR SGSNIPAddress IS STRING(46); EXEC SQL VAR MSNetworkCapability IS STRING(LEN_MSNetworkCapability+1); EXEC SQL VAR RoutingAreaCode IS STRING(9); EXEC SQL VAR LocationAreaCode IS STRING(17); EXEC SQL VAR CellIdentity IS STRING(25); EXEC SQL VAR RecordOpenTime IS STRING(LEN_DATETIME + 1); EXEC SQL VAR CallDuration IS STRING(13); EXEC SQL VAR CauseForRecClosing IS STRING(3); EXEC SQL VAR RecordSequenceNumber IS STRING(11); EXEC SQL VAR LocalRecordSequeceNumnber IS STRING(11); EXEC SQL VAR SCFAddress IS STRING(LEN_SCFAddress+1); EXEC SQL VAR ServiceKey IS STRING(LEN_ServiceKey+1); EXEC SQL VAR CAMELAPNNI IS STRING(64); EXEC SQL VAR CAMELAPNOI IS STRING(38); EXEC SQL VAR NumberOfDPEncounter IS STRING(11); EXEC SQL VAR LevelOfCamelService IS STRING(4); EXEC SQL VAR FreeFormatData IS STRING(161); EXEC SQL VAR CAMELCallingPartyNumber IS STRING(15); EXEC SQL VAR CAMELAccessDestinationSubNumber IS STRING(44); EXEC SQL VAR CAMELSMSAdress IS STRING(21); EXEC SQL VAR SmsReferenceNumber IS STRING(9); EXEC SQL VAR DateCreated IS STRING(LEN_DATETIME + 1); EXEC SQL VAR GsnId IS STRING(11); EXEC SQL VAR NodeId IS STRING(21);EXEC SQL END DECLARE SECTION; struct S_OMCDR *pOMCDR=*pOutCDR ; int nNumber = 0; char szMsg[512]; char szSQL[SQLMAX]; char szSQL2[SQLMAX]; char szSQL3[SQLMAX]; struct S_OMCDR* p2; int j; char * sz ; *nItems=0; if(pOMCDR != NULL) { return -1; } snprintf(szSQL2, SQLMAX, "SELECT COUNT(*) FROM %s WHERE %s", pInSzTableName,pWhere); snprintf(szSQL,SQLMAX,"SELECT " "SEQID,GTPID,GTPLTABLE,FLAGR499," "SERVEDIMSI,SERVEDIMEI,SERVEDMSISDN,SGSNIPADDRESS," "MSNNETWORKCAPABILITY,ROUTINGAREACODE,LOCATIONAREACODE," "CAUSEFORRECCLOSING,DIAGNOSITICS,RECORDSEQUENCENUMBER,NODEID," "LOCALRECORDSEQUECENUMBER,SYSTEMTYPE,SCFADDRESS,SERVICEKEY," "DEFAULTTRANSACHANDLING,CAMELAPNNI,CAMELAPNOI,NUMBEROFDPENCOUNTER," "LEVELOFCAMELSERVICE,FREEFORMATDATA,FFDAPPENDINDICATOR,DEFAULTSMSHANDLING," "CAMELCALLINGPARTYNUMBER,CAMELACCESSDESTNO,CAMELSMSADDRESS,SMSREFERENCENUMBER," "TO_CHAR(DATECREATED,'YYYYMMDDHH24MISS'),GSNID,FLAGREAD,CALLDURATION"#ifdef EXT10om",RECORDEXTENSIONS"",CHARGINGCHARACTERSELECTIONMODE"",CELLIDENTITY"",TO_CHAR(EVENTSTAMPTIME,'YYYYMMDDHH24MISS')"",SGSNCHANGE"",CHARGINGCHARACTERISTICS"#endif " FROM %s WHERE %s", pInSzTableName,pWhere); #ifdef _DEBUG#ifdef LOG_SELECT logOra(sErrLog, szSQL);#endif#endif Lock(); EXEC SQL WHENEVER SQLERROR GOTO sql_error2; EXEC SQL PREPARE stat2 FROM :szSQL2; EXEC SQL DECLARE OMCDR2 CURSOR FOR stat2; EXEC SQL OPEN OMCDR2; EXEC SQL WHENEVER NOT FOUND goto notfound2; EXEC SQL FETCH OMCDR2 INTO :nNumber; EXEC SQL CLOSE OMCDR2; if(nNumber <= 0) { Unlock(); * nItems = 0; return 0; } sz = malloc(SIZE_S_OMCDR*nNumber); memset(sz, 0, SIZE_S_OMCDR*nNumber); EXEC SQL WHENEVER SQLERROR GOTO sql_error; EXEC SQL PREPARE stat FROM :szSQL; EXEC SQL DECLARE OMCDR1 CURSOR FOR stat; EXEC SQL OPEN OMCDR1; EXEC SQL WHENEVER NOT FOUND goto notfound; #ifdef _DEBUG logOra(sErrLog, "CURSOR...");#endif for(j=0;j<nNumber;j++) { EXEC SQL FETCH OMCDR1 INTO :SeqId:ind[0],:GtpId:ind[1],:GtpName:ind[2],:FlagR499:ind[3], :ServedIMSI:ind[4],:ServedIMEI:ind[5],:ServedMSISDN:ind[6],:SGSNIPAddress:ind[7], :MSNetworkCapability:ind[8],:RoutingAreaCode:ind[9],:LocationAreaCode:ind[10], :CauseForRecClosing:ind[12],:Diagnostics:ind[13],:RecordSequenceNumber:ind[14],:NodeId:ind[15], :LocalRecordSequeceNumnber:ind[16],:SystemType:ind[17],:SCFAddress:ind[18],:ServiceKey:ind[19], :DefaultTransacHandling:ind[20],:CAMELAPNNI:ind[21],:CAMELAPNOI:ind[22],:NumberOfDPEncounter:ind[23], :LevelOfCamelService:ind[24],:FreeFormatData:ind[25],:FFDAppendIndicator:ind[26],:DefaultSMSHandling:ind[27], :CAMELCallingPartyNumber:ind[28],:CAMELAccessDestinationSubNumber:ind[29],:CAMELSMSAdress:ind[30],:SmsReferenceNumber:ind[31], :DateCreated:ind[32],:GsnId:ind[33],:FlagRead:ind[33],CallDuration:ind[33]#ifdef EXT10om,:RecordExtensions:id[1],:ChargingCharacterSelectionMode:id[1] ,:CellIdentity:id[1] ,:RecordOpenTime:id[1] ,:SGSNChange:id[1] ,:ChargingCharacteristics:id[1]#endif; p2 = (struct S_OMCDR*)&sz[SIZE_S_OMCDR*j]; p2->RecordType=RecordType; memcpy(p2->SeqId,SeqId,LEN_SEQ); memcpy(p2->GtpId,GtpId,LEN_SEQ); memcpy(p2->GtpName,GtpName,LEN_TABLENAME); p2->FlagR499=FlagR499; memcpy(p2->ServedIMSI,ServedIMSI,17); memcpy(p2->ServedIMEI,ServedIMEI,17); memcpy(p2->ServedMSISDN,ServedMSISDN,LEN_ServedMSISDN); memcpy(p2->SGSNIPAddress,SGSNIPAddress,46); memcpy(p2->MSNetworkCapability,MSNetworkCapability,LEN_MSNetworkCapability); memcpy(p2->RoutingAreaCode,RoutingAreaCode,9); memcpy(p2->LocationAreaCode,LocationAreaCode,17); memcpy(p2->CauseForRecClosing,CauseForRecClosing,3); memcpy(p2->Diagnostics,Diagnostics,LEN_Diagnostics); memcpy(p2->RecordSequenceNumber,RecordSequenceNumber,11); memcpy(p2->NodeId,NodeId,21); memcpy(p2->LocalRecordSequeceNumnber,LocalRecordSequeceNumnber,11); p2->SystemType=SystemType; memcpy(p2->SCFAddress,SCFAddress,LEN_SCFAddress+1); memcpy(p2->ServiceKey,ServiceKey,10); p2->DefaultTransacHandling=DefaultTransacHandling; memcpy(p2->CAMELAPNNI,CAMELAPNNI,64); memcpy(p2->CAMELAPNOI,CAMELAPNOI,38); memcpy(p2->NumberOfDPEncounter,NumberOfDPEncounter,11); memcpy(p2->LevelOfCamelService,LevelOfCamelService,4); memcpy(p2->FreeFormatData,FreeFormatData,161); p2->FFDAppendIndicator=FFDAppendIndicator; p2->DefaultSMSHandling=DefaultSMSHandling; memcpy(p2->CAMELCallingPartyNumber,CAMELCallingPartyNumber,15); memcpy(p2->CAMELAccessDestinationSubNumber,CAMELAccessDestinationSubNumber,44); memcpy(p2->CAMELSMSAdress,CAMELSMSAdress,21); memcpy(p2->SmsReferenceNumber,SmsReferenceNumber,9); memcpy(p2->DateCreated,DateCreated,LEN_DATETIME); memcpy(p2->GsnId,GsnId,11); memcpy(p2->CallDuration,CallDuration,12); p2->FlagRead=FlagRead;#ifdef EXT10ommemcpy(p2->RecordExtensions,RecordExtensions,LEN_RecordExtensions);p2->ChargingCharacterSelectionMode=ChargingCharacterSelectionMode;memcpy(p2->CellIdentity,CellIdentity,24);memcpy(p2->RecordOpenTime,RecordOpenTime,LEN_DATETIME);p2->SGSNChange=SGSNChange;memcpy(p2->ChargingCharacteristics,ChargingCharacteristics,LEN_ChargingCharacteristics);#endif memcpy(p2->TableName, pInSzTableName, LEN_TABLENAME); snprintf(szSQL3, SQLMAX, "UPDATE %s SET FLAGREAD=1 WHERE SEQID='%s'", p2->TableName, p2->SeqId); EXEC SQL EXECUTE IMMEDIATE :szSQL3; } * pOutCDR = (struct S_OMCDR*)sz; * nItems = nNumber; EXEC SQL CLOSE OMCDR1; if(nNumber > 0) { EXEC SQL COMMIT WORK; } Unlock(); pOut->nFlag = SQL_OK; return 0;notfound: EXEC SQL CLOSE OMCDR1; Unlock(); pOut->nFlag = SQL_OK; return 0;notfound2: EXEC SQL CLOSE OMCDR2; Unlock(); return 0;sql_error: EXEC SQL CLOSE OMCDR1; Unlock(); pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR snprintf(szMsg, 512, "ORA:DbOMCDRSelect: %.70s", sqlca.sqlerrm.sqlerrmc); logOra(sErrLog, szMsg);#endif EXEC SQL WHENEVER SQLERROR CONTINUE; onError(); return 1;sql_error2: EXEC SQL CLOSE OMCDR2; Unlock(); pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR snprintf(szMsg, 512, "ORA:DbOMCDRSelect: %.70s", sqlca.sqlerrm.sqlerrmc); logOra(sErrLog, szMsg);#endif EXEC SQL WHENEVER SQLERROR CONTINUE; onError();*/ return 1;}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -