⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 llotv.cpp

📁 Mysql的处理
💻 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 + -