?? omtcdr.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 + -