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

📄 lcloc.cpp

📁 Mysql的处理
💻 CPP
字号:
#include "oradb.h"int DbLCLOCInsert(struct S_LCLOC* pIn, struct S_RESULT* pOut){	char szMsg[512];	char* TableName = (char*)pIn->TableName;	char* SeqId = (char*)pIn->SeqId;	char* LocationAreaCode = (char*)pIn->LocationAreaCode;	char* RoutingAreaCode = (char*)pIn->RoutingAreaCode;	char* CellIdentity = pIn->CellIdentity;	char* ChangeTime = pIn->ChangeTime;	char* SortId = pIn->SortId;	int i=0;	char szSQL[SQLMAX];/*	snprintf(szSQL, SQLMAX, "INSERT INTO %s ("					"SEQID,"					"LOCATIONAREACODE,"					"ROUTINGAREACODE,"					"CELLIDENTITY,"					"CHANGETIME"				") VALUES("					"'%s','%s','%s','%s',TO_DATE('%s','YYYYMMDDHH24MISS'))",				TableName,				SeqId,				LocationAreaCode,				RoutingAreaCode,				CellIdentity,				ChangeTime					);*/	snprintf(szSQL, SQLMAX, "INSERT INTO %s ("					"LOCATIONAREACODE,"					"ROUTINGAREACODE,"					"CELLIDENTITY,"					"SORTID,"					"CHANGETIME"				") VALUES("					"'%s','%s','%s',%s,'%s')",				TableName,				LocationAreaCode,				RoutingAreaCode,				CellIdentity,				SortId,				ChangeTime					);#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,				:LocationAreaCode,				:RoutingAreaCode,				:CellIdentity,				:ChangeTime,				: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 DbLCLOCSelect(char* pInSzTableName, char* pInSzSeqId, struct S_LCLOC** pOutLChangeLocation, int * number, struct S_RESULT* pOut){	char szMsg[512];	char SeqId[LEN_SEQ + 1];	char LocationAreaCode[5];	char RoutingAreaCode[9];	char CellIdentity[5];	char ChangeTime[LEN_DATETIME + 1];	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 LocationAreaCode IS STRING(4+1);	EXEC SQL VAR RoutingAreaCode IS STRING(8+1);	EXEC SQL VAR CellIdentity IS STRING(4+1);	EXEC SQL VAR ChangeTime IS STRING(LEN_DATETIME+1);	EXEC SQL END DECLARE SECTION;	struct S_LCLOC *pLCLOC = *pOutLChangeLocation;	int nNumber = 0;	char szSQL[SQLMAX];	char szSQL2[SQLMAX];	struct S_LCLOC* p2;	int j;	char * sz ;	short id[5];	*number = 0;	if(pLCLOC != NULL)	{		return -1;	}	snprintf(szSQL2, SQLMAX, 		"SELECT COUNT(*) FROM %s WHERE SEQID=%s",		pInSzTableName, pInSzSeqId);	snprintf(szSQL, SQLMAX, 		"SELECT SEQID,LOCATIONAREACODE, ROUTINGAREACODE, CELLIDENTITY, "		"TO_CHAR(CHANGETIME,'YYYYMMDDHH24MISS'),"		"SORTID "		"FROM %s WHERE SEQID=%s",		pInSzTableName, pInSzSeqId);#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 C2_LCLOC CURSOR FOR stat2;	EXEC SQL OPEN C2_LCLOC;	EXEC SQL WHENEVER NOT FOUND goto notfound2;	EXEC SQL FETCH C2_LCLOC INTO :nNumber;	EXEC SQL CLOSE C2_LCLOC;	if(nNumber <= 0)	{		Unlock();	* number = 0;		return 0;	}	sz = malloc(SIZE_S_LCLOC*nNumber);	memset(sz, 0, SIZE_S_LCLOC*nNumber);	EXEC SQL WHENEVER SQLERROR GOTO sql_error; 	EXEC SQL PREPARE stat FROM :szSQL;	EXEC SQL DECLARE C1_LCLOC CURSOR FOR stat;	EXEC SQL OPEN C1_LCLOC;	EXEC SQL WHENEVER NOT FOUND goto notfound;		#ifdef _DEBUG	logOra(sErrLog, "CURSOR...");#endif	for(j=0;j<nNumber;j++)	{		EXEC SQL FETCH C1_LCLOC INTO 			:SeqId,			:LocationAreaCode:id[0],				:RoutingAreaCode:id[1],				:CellIdentity:id[2],				:ChangeTime:id[3],				:SortId:id[0];		p2 = (struct S_LCLOC*)&sz[SIZE_S_LCLOC*j];		memcpy(p2->SeqId, SeqId, 20);		memcpy(p2->LocationAreaCode, LocationAreaCode, 4);		memcpy(p2->RoutingAreaCode, RoutingAreaCode, 8);		memcpy(p2->CellIdentity, CellIdentity, 4);		memcpy(p2->ChangeTime, ChangeTime, LEN_DATETIME);		memcpy(p2->SortId, SortId, LEN_SORT);		memcpy(p2->TableName, pInSzTableName, LEN_TABLENAME);			}		* pOutLChangeLocation = (struct S_LCLOC*)sz;	* number = nNumber;notfound:	EXEC SQL CLOSE C1_LCLOC;	Unlock();	pOut->nFlag = SQL_OK;	return 0;notfound2:	EXEC SQL CLOSE C2_LCLOC;	Unlock();	return 0;sql_error:	EXEC SQL CLOSE C1_LCLOC;	Unlock();	pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR	snprintf(szMsg, 512, "ORA:DbLCLOCSelect: %.70s", sqlca.sqlerrm.sqlerrmc);    logOra(sErrLog, szMsg);#endif    EXEC SQL WHENEVER SQLERROR CONTINUE; 	onError();			return 1;sql_error2:	EXEC SQL CLOSE C2_LCLOC;	Unlock();	pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR	snprintf(szMsg, 512, "ORA:DbLCLOCSelect: %.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 + -