?? llotv.cpp
字號:
#include "oradb.h"int DbLLOTVInsert(struct S_LLOTV* pIn, struct S_RESULT* pOut){ char szMsg[512]; char* TableName = (char*)pIn->TableName; char* SeqId = (char*)pIn->SeqId; int ChangeCondition = pIn->ChangeCondition; char* DataVolumeGPRSUp = pIn->DataVolumeGPRSUp; char* DataVolumeGPRSDown = pIn->DataVolumeGPRSDown; char* ChangeTime = pIn->ChangeTime; char* QoSNUMTS = pIn->QoSNUMTS; char* QoSNMeanThroughput = pIn->QoSNMeanThroughput; char* QoSNPeakThrougput = pIn->QoSNPeakThrougput; int QoSNDelay = pIn->QoSNDelay; int QoSNPrecedence = pIn->QoSNPrecedence; int QoSNReliability = pIn->QoSNReliability; char* QoSRUMTS = pIn->QoSRUMTS; char* QoSRMeanThroughput = pIn->QoSRMeanThroughput; char* QoSRPeakThrougput = pIn->QoSRPeakThrougput; int QoSRDelay = pIn->QoSRDelay; int QoSRPrecedence = pIn->QoSRPrecedence; int QoSRReliability = pIn->QoSRReliability; char* SortId = pIn->SortId; char szSQL[SQLMAX];/*#ifdef _DEBUG snprintf(szSQL, SQLMAX, "INSERT INTO %s (""SEQID,""CHANGECONDITION,""DATAVLOLUMNGPRSUP," "DATAVOLUMNGPRSDOWN," "CHANGETIME," "QOSNUMTS," "QOSNMEANTHROUGHT," "QOSNPEAKTHROUGHT," "QOSNDELAY," "QOSNRECEDENCE," "QOSNRELIABILITY," "QOSRUMTS," "QOSMEANTHROUGHPUT," "QOSPEAKTHROUGHPUT," "QOSRDELAY," "QOSPRECEDENCE," "QOSRRELIABILITY" ") VALUES(" "'%s'," "%d,'%s','%s',TO_DATE('%s','YYYYMMDDHH24MISS')," "'%s'," "'%s','%s',%d,%d,%d," "'%s'," "'%s','%s',%d,%d,%d" ")", TableName, SeqId,ChangeCondition,DataVolumeGPRSUp,DataVolumeGPRSDown,ChangeTime,QoSNUMTS,QoSNMeanThroughput,QoSNPeakThrougput,QoSNDelay,QoSNPrecedence,QoSNReliability,QoSRUMTS,QoSRMeanThroughput,QoSRPeakThrougput,QoSRDelay,QoSRPrecedence,QoSRReliability); logOra(sErrLog, szSQL);#endif*/snprintf(szSQL, SQLMAX, "INSERT INTO %s (""CHANGECONDITION,""DATAVLOLUMNGPRSUP," "DATAVOLUMNGPRSDOWN," "CHANGETIME," "QOSNUMTS," "QOSNMEANTHROUGHT," "QOSNPEAKTHROUGHT," "QOSNDELAY," "QOSNRECEDENCE," "QOSNRELIABILITY," "QOSRUMTS," "QOSMEANTHROUGHPUT," "QOSPEAKTHROUGHPUT," "QOSRDELAY," "QOSPRECEDENCE," "QOSRRELIABILITY" ") VALUES(" "%d,%s,%s,'%s'," "'%s'," "%s,%s,%d,%d,%d," "'%s'," "%s,%s,%d,%d,%d" ")", TableName,ChangeCondition,DataVolumeGPRSUp,DataVolumeGPRSDown,ChangeTime,QoSNUMTS,QoSNMeanThroughput,QoSNPeakThrougput,QoSNDelay,QoSNPrecedence,QoSNReliability,QoSRUMTS,QoSRMeanThroughput,QoSRPeakThrougput,QoSRDelay,QoSRPrecedence,QoSRReliability);#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; } Unlock();/* Lock(); EXEC SQL WHENEVER SQLERROR GOTO sql_error; EXEC SQL EXECUTE DECLARE BEGIN EXECUTE IMMEDIATE :szSQL using :SeqId,:ChangeCondition,:DataVolumeGPRSUp,:DataVolumeGPRSDown,:ChangeTime,:QoSNUMTS,:QoSNMeanThroughput,:QoSNPeakThrougput,:QoSNDelay,:QoSNPrecedence,:QoSNReliability,:QoSRUMTS,:QoSRMeanThroughput,:QoSRPeakThrougput,:QoSRDelay,:QoSRPrecedence,:QoSRReliability,:SortId;#ifdef NO_TRANS COMMIT; #endif END; END-EXEC; Unlock(); pOut->nFlag = SQL_OK; return 0;sql_error: Unlock(); pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR snprintf(szMsg, 512, "ORA:DbLCLOCInsert: %.70s", sqlca.sqlerrm.sqlerrmc); logOra(sErrLog, szMsg);#endif EXEC SQL WHENEVER SQLERROR CONTINUE; onError();*/ return 1;}int DbLLOTVSelect(char* pInSzTableName, char* pInSzSeqId, struct S_LLOTV** pOutLChangeLocation, int * number, struct S_RESULT* pOut){ char szMsg[512]; char SeqId[LEN_SEQ + 1]; int ChangeCondition; char DataVolumeGPRSUp[17]; char DataVolumeGPRSDown[17]; char ChangeTime[LEN_DATETIME + 1]; char QoSNUMTS[24 + 1]; char QoSNMeanThroughput[3]; char QoSNPeakThrougput[3]; int QoSNDelay; int QoSNPrecedence; int QoSNReliability; char QoSRUMTS[24 + 1]; char QoSRMeanThroughput[3]; char QoSRPeakThrougput[3]; int QoSRDelay; int QoSRPrecedence; int QoSRReliability; char SortId[LEN_SORT+1]; /* EXEC SQL BEGIN DECLARE SECTION; EXEC SQL VAR SortId IS STRING(LEN_SORT+1); EXEC SQL VAR SeqId IS STRING(LEN_SEQ+1); EXEC SQL VAR ChangeTime IS STRING(LEN_DATETIME+1); EXEC SQL VAR QoSNUMTS IS STRING(24+1); EXEC SQL VAR QoSRUMTS IS STRING(24+1); EXEC SQL VAR DataVolumeGPRSUp IS STRING(17); EXEC SQL VAR DataVolumeGPRSDown IS STRING(17); EXEC SQL VAR QoSNMeanThroughput IS STRING(3); EXEC SQL VAR QoSNPeakThrougput IS STRING(3); EXEC SQL VAR QoSRMeanThroughput IS STRING(3); EXEC SQL VAR QoSRPeakThrougput IS STRING(3); EXEC SQL END DECLARE SECTION; struct S_LLOTV *pLCLOC = *pOutLChangeLocation; int nNumber = 0; char szSQL[SQLMAX]; char szSQL2[SQLMAX]; struct S_LLOTV* p2; int j; char * sz ; short id[20]; char ww[1024]; *number = 0; if(pLCLOC != NULL) { return -1; }#ifdef _DEBUG#ifdef LOG_SELECT#endif#endif snprintf(szSQL2, SQLMAX, "SELECT COUNT(*) FROM %s WHERE SEQID=%s", pInSzTableName, pInSzSeqId);#ifdef _DEBUG#ifdef LOG_SELECT#endif#endif snprintf(szSQL, SQLMAX, "SELECT " "SEQID," "CHANGECONDITION,""DATAVLOLUMNGPRSUP,""DATAVOLUMNGPRSDOWN,""TO_CHAR(CHANGETIME,'YYYYMMDDHH24MISS'),""QOSNUMTS,""QOSNMEANTHROUGHT,""QOSNPEAKTHROUGHT,""QOSNDELAY,""QOSNRECEDENCE,""QOSNRELIABILITY,""QOSRUMTS,""QOSMEANTHROUGHPUT,""QOSPEAKTHROUGHPUT,""QOSRDELAY,""QOSPRECEDENCE,""QOSRRELIABILITY" ",SORTID" " FROM %s WHERE SEQID=%s", pInSzTableName, pInSzSeqId);#ifdef _DEBUG#endif Lock(); EXEC SQL WHENEVER SQLERROR GOTO sql_error2; EXEC SQL PREPARE stat2 FROM :szSQL2; EXEC SQL DECLARE C2_LLOTV CURSOR FOR stat2; EXEC SQL OPEN C2_LLOTV; EXEC SQL WHENEVER NOT FOUND goto notfound2; EXEC SQL FETCH C2_LLOTV INTO :nNumber; EXEC SQL CLOSE C2_LLOTV; if(nNumber <= 0) { Unlock(); * number = 0; return 0; } sz = malloc(SIZE_S_LLOTV*nNumber); memset(sz, 0, SIZE_S_LLOTV*nNumber); EXEC SQL WHENEVER SQLERROR GOTO sql_error; EXEC SQL PREPARE stat FROM :szSQL; EXEC SQL DECLARE C1_LLOTV CURSOR FOR stat; EXEC SQL OPEN C1_LLOTV; EXEC SQL WHENEVER NOT FOUND goto notfound; #ifdef _DEBUG logOra(sErrLog, "CURSOR...");#endif for(j=0;j<nNumber;j++) { EXEC SQL FETCH C1_LLOTV INTO :SeqId:id[16], :ChangeCondition:id[0], :DataVolumeGPRSUp:id[1], :DataVolumeGPRSDown:id[2], :ChangeTime:id[3], :QoSNUMTS:id[4], :QoSNMeanThroughput:id[5], :QoSNPeakThrougput:id[6], :QoSNDelay:id[7], :QoSNPrecedence:id[8], :QoSNReliability:id[9], :QoSRUMTS:id[10], :QoSRMeanThroughput:id[11], :QoSRPeakThrougput:id[12], :QoSRDelay:id[13], :QoSRPrecedence:id[14], :QoSRReliability:id[15], :SortId:id[0]; p2 = (struct S_LLOTV*)&sz[SIZE_S_LLOTV*j]; memcpy(p2->SeqId, SeqId, 20); p2->ChangeCondition = ChangeCondition; memcpy(p2->DataVolumeGPRSUp, DataVolumeGPRSUp,16); memcpy(p2->DataVolumeGPRSDown, DataVolumeGPRSDown,16); memcpy(p2->ChangeTime, ChangeTime, LEN_DATETIME); memcpy(p2->QoSNUMTS, QoSNUMTS, 24); memcpy(p2->QoSNMeanThroughput,QoSNMeanThroughput,2); memcpy(p2->QoSNPeakThrougput,QoSNPeakThrougput,2); p2->QoSNDelay=QoSNDelay; p2->QoSNPrecedence=QoSNPrecedence; p2->QoSNReliability=QoSNReliability; memcpy(p2->QoSRUMTS, QoSRUMTS, 24); memcpy(p2->QoSRMeanThroughput,QoSRMeanThroughput,2); memcpy(p2->QoSRPeakThrougput,QoSRPeakThrougput,2); p2->QoSRDelay=QoSRDelay; p2->QoSRPrecedence=QoSRPrecedence; p2->QoSRReliability = QoSRReliability; memcpy(p2->SortId, SortId, LEN_SORT);#ifdef _DEBUG logOra(sErrLog, "%d]%d %d %d " "%s %s " "%d %d %d %d %d " "%s " "%d %d %d %d %d ", j, ChangeCondition, DataVolumeGPRSUp, DataVolumeGPRSDown, ChangeTime, QoSNUMTS, QoSNMeanThroughput, QoSNPeakThrougput, QoSNDelay, QoSNPrecedence, QoSNReliability, QoSRUMTS, QoSRMeanThroughput, QoSRPeakThrougput, QoSRDelay, QoSRPrecedence, QoSRReliability );#endif memcpy(p2->TableName, pInSzTableName, LEN_TABLENAME); } * pOutLChangeLocation = (struct S_LLOTV*)sz; * number = nNumber;notfound: EXEC SQL CLOSE C1_LLOTV; Unlock(); pOut->nFlag = SQL_OK; return 0;notfound2: EXEC SQL CLOSE C2_LLOTV; Unlock();sql_error: EXEC SQL CLOSE C1_LLOTV; Unlock(); pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR snprintf(szMsg, 512, "ORA:DbLLOTVSelect: %.70s", sqlca.sqlerrm.sqlerrmc); logOra(sErrLog, szMsg);#endif EXEC SQL WHENEVER SQLERROR CONTINUE; onError(); return 1;sql_error2: EXEC SQL CLOSE C2_LLOTV; Unlock(); pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR snprintf(szMsg, 512, "ORA:DbLLOTVSelect: %.70s", sqlca.sqlerrm.sqlerrmc); logOra(sErrLog, szMsg);#endif EXEC SQL WHENEVER SQLERROR CONTINUE; onError();*/ return 2;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -