?? omcdr.cpp
字號:
#include "oradb.h"/********************************************************* filename :OMCDR.pc* function descrpition :insert data into database OMCDRxxxxxxxxxx * input :struct S_OMCDR * * output :SQL_OK ( operation sucess) SQL_RET_ERRO (operation failed)* date :2006-05-22**********************************************************/int DbOMCDRInsert(struct S_OMCDR* pIn, struct S_RESULT* pOut){ short RecordType; char *GtpName=(char *)pIn->GtpName; char *GtpId=(char *)pIn->GtpId; int FlagRead = pIn->FlagRead; int FlagRepeat=pIn->FlagRepeat; int FlagR499=pIn->FlagR499; int SystemType=pIn->SystemType; char *ServedIMSI=(char *)pIn->ServedIMSI; char *ServedIMEI=(char *)pIn->ServedIMEI; char *ServedMSISDN=(char *)pIn->ServedMSISDN; char *SGSNIPAddress=(char *)pIn->SGSNIPAddress; char *MSNetworkCapability=(char *)pIn->MSNetworkCapability; char *RoutingAreaCode=(char *)pIn->RoutingAreaCode; char *LocationAreaCode=(char *)pIn->LocationAreaCode; char *CellIdentity=(char *)pIn->CellIdentity; char *NodeId=(char *)pIn->NodeId;/* add by xxh 2006.5.15*/ char *RecordOpenTime=(char *)pIn->RecordOpenTime; char *CallDuration=(char *)pIn->CallDuration; int SGSNChange=pIn->SGSNChange; char *CauseForRecClosing=(char *)pIn->CauseForRecClosing; char *Diagnostics = pIn->Diagnostics; char *RecordSequenceNumber=(char *)pIn->RecordSequenceNumber; char *LocalRecordSequeceNumnber=(char *)pIn->LocalRecordSequeceNumnber; /* CAMEL Information*/ char *SCFAddress=(char *)pIn->SCFAddress; char *ServiceKey=(char *)pIn->ServiceKey; /*char */ int DefaultTransacHandling=pIn->DefaultTransacHandling; char *CAMELAPNNI=(char *)pIn->CAMELAPNNI; char *CAMELAPNOI=(char *)pIn->CAMELAPNOI; char *NumberOfDPEncounter=(char *)pIn->NumberOfDPEncounter; char *LevelOfCamelService=(char *)pIn->LevelOfCamelService; char *FreeFormatData=(char *)pIn->FreeFormatData; /*char */int FFDAppendIndicator=pIn->FFDAppendIndicator; /*char*/int DefaultSMSHandling=pIn->DefaultSMSHandling; char *CAMELCallingPartyNumber=(char *)pIn->CAMELCallingPartyNumber; char *CAMELAccessDestination=(char *)pIn->CAMELAccessDestinationSubNumber; char *CAMELSMSAdress=(char *)pIn->CAMELSMSAdress; char *SmsReferenceNumber=(char *)pIn->SmsReferenceNumber; /*char *DateCreated[LEN_DATETIME + 1]=(char *)pIn->;*/ char *GsnId=(char *)pIn->GsnId; char *TableName=(char *)pIn->TableName; char *RecordExtensions = pIn->RecordExtensions;#ifdef EXT10om int ChargingCharacterSelectionMode = pIn->ChargingCharacterSelectionMode;#endif char *ChargingCharacteristics=(char *)pIn->ChargingCharacteristics; char szMsg[512]; char szSQL[SQLMAX]; char SeqId[LEN_SEQ + 1];/* 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_OMCDR.NEXTVAL INTO :SeqId FROM DUAL;*/ /*snprintf(szSQL,SQLMAX,"INSERT INTO %s(" "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," "DATECREATED,GSNID,FLAGREAD ) VALUES(" " '%s','%s','%s',%d," " '%s','%s','%s','%s'," " '%s','%s','%s'," " '%s',%d,'%s','%s'," " '%s',%d,'%s','%s'," " %d,'%s','%s','%s'," " '%s','%s',%d,%d," " '%s','%s','%s','%s'," " SYSDATE,'%s',%d)" , TableName, SeqId,GtpId,GtpName,FlagR499, ServedIMSI,ServedIMEI,ServedMSISDN,SGSNIPAddress, MSNetworkCapability,RoutingAreaCode,LocationAreaCode, CauseForRecClosing,Diagnostics,RecordSequenceNumber,NodeId, LocalRecordSequeceNumnber,SystemType,SCFAddress,ServiceKey, DefaultTransacHandling,CAMELAPNNI,CAMELAPNOI,NumberOfDPEncounter, LevelOfCamelService,FreeFormatData,FFDAppendIndicator,DefaultSMSHandling, CAMELCallingPartyNumber,CAMELAccessDestination,CAMELSMSAdress,SmsReferenceNumber, GsnId,FlagRead); */snprintf(szSQL,SQLMAX,"INSERT INTO %s(" "GTPID,GTPLTABLE,FLAGR499," "FLAGREPEAT," "SERVEDIMSI,SERVEDIMEI,SERVEDMSISDN,SGSNIPADDRESS," "MSNNETWORKCAPABILITY,ROUTINGAREACODE,LOCATIONAREACODE," "CAUSEFORRECCLOSING,DIAGNOSITICS,RECORDSEQUENCENUMBER,NODEID," "LOCALRECORDSEQUECENUMBER,SYSTEMTYPE,SCFADDRESS,SERVICEKEY," "DEFAULTTRANSACHANDLING,CAMELAPNNI,CAMELAPNOI,NUMBEROFDPENCOUNTER," "LEVELOFCAMELSERVICE,FREEFORMATDATA,FFDAPPENDINDICATOR,DEFAULTSMSHANDLING," "CAMELCALLINGPARTYnumeric,CAMELACCESSDESTNO,CAMELSMSADDRESS,SMSREFERENCENUMBER," "DATECREATED,GSNID,FLAGREAD,CALLDURATION "#ifdef EXT10om",RECORDEXTENSIONS"",CHARGINGCHARACTERSELECTIONMODE"",CELLIDENTITY"//",EVENTSTAMPTIME"",SGSNCHANGE"",CHARGINGCHARACTERISTICS"#endif ") VALUES(" " %s,'%s',%d," "%d," " '%s','%s','%s','%s'," " '%s','%s','%s'," " %s,%s,%s,'%s'," " %s,%d,'%s',%s," " %d,'%s','%s',%s," " '%s','%s',%d,%d," " '%s','%s','%s','%s'," " NOW(),%s,%d,%d"#ifdef EXT10om",'%s'"",%d"",'%s'"//",'%s'"",%d"",'%s'"#endif ")" , TableName, GtpId,GtpName,FlagR499, FlagRepeat, ServedIMSI,ServedIMEI,ServedMSISDN,SGSNIPAddress, MSNetworkCapability,RoutingAreaCode,LocationAreaCode, CauseForRecClosing,Diagnostics,RecordSequenceNumber,NodeId, LocalRecordSequeceNumnber,SystemType,SCFAddress,ServiceKey, DefaultTransacHandling,CAMELAPNNI,CAMELAPNOI,NumberOfDPEncounter, LevelOfCamelService,FreeFormatData,FFDAppendIndicator,DefaultSMSHandling, CAMELCallingPartyNumber,CAMELAccessDestination,CAMELSMSAdress,SmsReferenceNumber, GsnId,FlagRead,CallDuration #ifdef EXT10om ,RecordExtensions ,ChargingCharacterSelectionMode ,CellIdentity// ,EventStampTime ,SGSNChange ,ChargingCharacteristics #endif ); #ifdef _DEBUG logOra(sErrLog, szSQL);#endif Lock(); int res=0; 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; } Unlock();/* Lock(); EXEC SQL EXECUTE DECLARE BEGINEXECUTE IMMEDIATE :szSQL using :SeqId,:GtpId,:GtpName,:FlagR499,:FlagRepeat, :ServedIMSI,:ServedIMEI,:ServedMSISDN,:SGSNIPAddress, :MSNetworkCapability,:RoutingAreaCode,:LocationAreaCode, :CauseForRecClosing,:Diagnostics,:RecordSequenceNumber,:NodeId, :LocalRecordSequeceNumnber,:SystemType,:SCFAddress,:ServiceKey, :DefaultTransacHandling,:CAMELAPNNI,:CAMELAPNOI,:NumberOfDPEncounter, :LevelOfCamelService,:FreeFormatData,:FFDAppendIndicator,:DefaultSMSHandling, :CAMELCallingPartyNumber,:CAMELAccessDestination,:CAMELSMSAdress,:SmsReferenceNumber, :GsnId,:FlagRead,:CallDuration#ifdef EXT10om ,:RecordExtensions ,:ChargingCharacterSelectionMode ,:CellIdentity ,:RecordOpenTime ,:SGSNChange ,:ChargingCharacteristics#endif; #ifdef NO_TRANS COMMIT; #endif END; END-EXEC; Unlock(); pOut->nFlag = SQL_OK; snprintf(pOut->SeqId, LEN_SEQ+1, "%s", SeqId); return 0;sql_error: Unlock(); pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR snprintf(szMsg, 512, "ORA:DbOMCDRInsert: %.70s", sqlca.sqlerrm.sqlerrmc); logOra(sErrLog, szMsg);#endif EXEC SQL WHENEVER SQLERROR CONTINUE; onError();notfound: */ return 1;}/************************************************************************ filename :OMCDR.pc* function descrpition :get records from database OMCDRxxxxxxxxxx * input :Tablename,Condition; * output :S_OMCDR is record set to store what we want, nItems is counter of those record set,S_RESULT is flag to tell us about operation is sucessful or not;* date :2006-05-22*************************************************************************************/int DbOMCDRSelect(char* pInSzTableName, char* pWhere, struct S_OMCDR** pOutCDR, int *nItems, struct S_RESULT* pOut){ short ind[55]; short id[2]; short RecordType; char SeqId[LEN_SEQ + 1]; char GtpName[LEN_TABLENAME + 1]; char GtpId[LEN_SEQ + 1]; int FlagRead; int FlagRepeat; int FlagR499; char 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 CellIdentity[25]; /*int ChargingID;*/ char RecordOpenTime[LEN_DATETIME + 1]; char CallDuration[13]; char SGSNChange; char CauseForRecClosing[3]; char Diagnostics[LEN_Diagnostics+1]; char RecordSequenceNumber[11]; char LocalRecordSequeceNumnber[11]; /* CAMEL Information*/ char SCFAddress[LEN_SCFAddress+1]; char ServiceKey[LEN_ServiceKey+1];
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -