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

📄 ogtpl.cpp

📁 Mysql的处理
💻 CPP
字号:
#include "oradb.h"#include "Base64.h"int DbGTPInsert(struct S_GTPL* pIn, struct S_RESULT* pOut){	char szMsg[512];	char szSQL[SQLMAX];	int i=0;	char SeqId[LEN_SEQ + 1];	char TableName2[LEN_TABLENAME + 1];			int 	nRecordType=pIn->RecordType;	char *szContent=(char *)pIn->Content;	int 	nContentLength=pIn->ContentLength;	int 	nFlagCancel=pIn->FlagCancel;	char *szGsnId=(char *)pIn->GsnId;	char *TableName=(char *)pIn->TableName;	unsigned int  PeerIp=pIn->PeerIp;	unsigned int  PeerSeqId=pIn->PeerSeqId;	int 	nCgType=pIn->CgType;	char szSQL2[SQLMAX];/*	EXEC SQL BEGIN DECLARE SECTION;	EXEC SQL VAR SeqId IS STRING(LEN_SEQ + 1);	EXEC SQL VAR TableName2 IS STRING(LEN_TABLENAME + 1);	EXEC SQL END DECLARE SECTION; /*	EXEC SQL WHENEVER SQLERROR GOTO sql_error; 	EXEC SQL SELECT SEQ_OGTPL.NEXTVAL 	INTO :SeqId 	FROM DUAL;*/	/*     PART 2 INSERT STATEMENT           */	snprintf(szSQL, SQLMAX, "INSERT  INTO %s ("	"RECORDTYPE,CONTENT,CONTENTLENGTH,FLAGCANCEL,"	"DATECREATE,GSNID,PEERIP,PEERSEQID)	VALUES("	"%d,'%s',%d,%d,"	"CURDATE(),'%s',%u,%u)",	TableName,	nRecordType,szContent,nContentLength,nFlagCancel,	szGsnId,PeerIp,PeerSeqId);/*	snprintf(szSQL, SQLMAX, "INSERT INTO %s ("	"RECORDTYPE,SEQID,CONTENT,CONTENTLENGTH,FLAGCANCEL,"	"DATECREATE,GSNID,PEERIP,PEERSEQID,CGTYPE)	VALUES("	"%d,SEQ_OGTPL.NEXTVAL,'%s',%d,%d,"	"SYSDATE,'%s',%u,%u)",	TableName,	nRecordType,szContent,nContentLength,nFlagCancel,szGsnId,PeerIp,PeerSeqId);*/	#ifdef _DEBUG	logOra(sErrLog, szSQL);#endif	int res = mysql_real_query(myConnect, szSQL, strlen(szSQL));	Lock();	if(res != 0)	{//		printf("%d %s\n", mysql_errno(myConnect), mysql_error(myConnect));		Unlock();		logOra(sErrLog, "%d %s\n", mysql_errno(myConnect), mysql_error(myConnect));		return -1;	}    Unlock();/*	snprintf(szSQL2, SQLMAX, "INSERT  INTO %s ("	"RECORDTYPE,SEQID,CONTENT,CONTENTLENGTH,FLAGCANCEL,"	"DATECREATE,GSNID,PEERIP,PEERSEQID,CGTYPE,TRYTIMES)	VALUES("	":x1,SEQ_OGTPL.NEXTVAL,:x2,:x3,:x4,"	"SYSDATE,:x4,:x5,:x6,:x7,0)",	TableName);#ifdef _DEBUG	logOra(sErrLog, szSQL2);#endif	Lock();	EXEC SQL EXECUTE		BEGINEXECUTE IMMEDIATE :szSQL2 using :nRecordType, :szContent,:nContentLength,:nFlagCancel, :szGsnId,:PeerIp,:PeerSeqId,:nCgType;SELECT SEQ_OGTPL.CURRVAL INTO :SeqId FROM DUAL;COMMIT;			END;	END-EXEC;	Unlock();	pOut->nFlag = SQL_OK;	memcpy(pOut->SeqId, SeqId, 20);	memcpy(pOut->TableName, TableName, 30);	pOut->nFlag = SQL_OK;	return 0;sql_error:	Unlock();	pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR	snprintf(szMsg, 512, "ORA:DbOGTPInsert: %.70s", sqlca.sqlerrm.sqlerrmc);    logOra(sErrLog, szMsg);#endif    EXEC SQL WHENEVER SQLERROR CONTINUE; 	onError();notfound:	*/	return 0;}int DbGTPSelect(char* pInSzTableName, char* szInSeqId, int* RecordType,	char* szOutContent, char* szOutSeqId, int* nPeerIp, int *nFlagCancel){	char szMsg[512];			char TableName[LEN_TABLENAME + 1];			int		nRecordType;	int 	nContentLength;	int 	nFlagCancel2;	unsigned int nPeeIp2;	char szSQL[SQLMAX];	short id;/*	EXEC SQL BEGIN DECLARE SECTION;	EXEC SQL VAR szOutSeqId IS STRING(LEN_SEQ + 1);	EXEC SQL VAR szOutContent IS STRING(4000);	EXEC SQL END DECLARE SECTION; */	snprintf(szSQL, SQLMAX, 		"SELECT SEQID,CONTENT,RECORDTYPE,PEERIP,FLAGCANCEL "		"FROM %s WHERE SEQID>'%s'", pInSzTableName, szInSeqId);/*	snprintf(szSQL, SQLMAX, 		"SELECT COUNT(*) "		"FROM %s", pInSzTableName);*/#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 PREPARE stat FROM :szSQL;	EXEC SQL DECLARE C1_GTP CURSOR FOR stat;	EXEC SQL OPEN C1_GTP;	EXEC SQL WHENEVER NOT FOUND goto notfound;			EXEC SQL FETCH C1_GTP INTO 			:szOutSeqId:id,			:szOutContent:id,			:nRecordType:id,			:nPeeIp2:id,			:nFlagCancel2:id;		*RecordType = nRecordType;		*nPeerIp = nPeeIp2;		*nFlagCancel = nFlagCancel2;	EXEC SQL CLOSE C1_GTP;	Unlock();	return 0;notfound:	EXEC SQL CLOSE C1_GTP;	Unlock();	return 2;sql_error:	EXEC SQL CLOSE C1_GTP;#ifdef LOG_ERROR	snprintf(szMsg, 512, "ORA:DbOGTPInsert: %.70s", sqlca.sqlerrm.sqlerrmc);    logOra(sErrLog, szMsg);#endif	Unlock();*/	return 3;}int DbGTPCount(char* pInSzTableName, long inIPeerIp, long inIPeerSeqId, long *nOutCount){	char szMsg[512];		char TableName[LEN_TABLENAME + 1];			char szSQL[SQLMAX];	short id;	int nCount;	snprintf(szSQL, SQLMAX, 		"SELECT COUNT(*) "		"FROM %s WHERE PEERIP='%u' AND PEERSEQID='%u'", 		pInSzTableName, 		(unsigned long)inIPeerIp, 		(unsigned long)inIPeerSeqId);#ifdef _DEBUG	logOra(sErrLog, szSQL);#endif	Lock();/*	EXEC SQL WHENEVER SQLERROR GOTO sql_error; 	EXEC SQL PREPARE stat FROM :szSQL;	EXEC SQL DECLARE C1_GTP2 CURSOR FOR stat;	EXEC SQL OPEN C1_GTP2;	EXEC SQL WHENEVER NOT FOUND goto notfound;		EXEC SQL FETCH C1_GTP2 INTO :nCount:id;	EXEC SQL CLOSE C1_GTP2;*/	Unlock();	*nOutCount = nCount;	return 0;/*notfound:	EXEC SQL CLOSE C1_GTP2;	Unlock();	return 2;sql_error:	EXEC SQL CLOSE C1_GTP2;	Unlock();	return 3;	*/}int DbGTPSelect2(long inIPeerIp, long inIPeerSeqId,		char *pInSzTableName, 		int *nRecordType, 		char *szOutContent,		char *szOutSeqId){	char szMsg[512];			char TableName[LEN_TABLENAME + 1];			int nRecordType2;	char szOutContent2[4000];	char szOutSeqId2[LEN_SEQ];	char szSQL[SQLMAX];	short id;/*	EXEC SQL BEGIN DECLARE SECTION;	EXEC SQL VAR szOutSeqId2 IS STRING(LEN_SEQ + 1);	EXEC SQL VAR szOutContent2 IS STRING(4000);	EXEC SQL END DECLARE SECTION; */	snprintf(szSQL, SQLMAX, 		"SELECT RECORDTYPE,SEQID,CONTENT "		"FROM %s WHERE PEERIP='%u' AND PEERSEQID='%u' ORDER BY SEQID DESC", 		pInSzTableName, 		(unsigned long)inIPeerIp, 		(unsigned long)inIPeerSeqId);#ifdef _DEBUG	logOra(sErrLog, szSQL);#endif	Lock();/*	EXEC SQL WHENEVER SQLERROR GOTO sql_error; 	EXEC SQL PREPARE stat FROM :szSQL;	EXEC SQL DECLARE C1_GTP4 CURSOR FOR stat;	EXEC SQL OPEN C1_GTP4;	EXEC SQL WHENEVER NOT FOUND goto notfound;			EXEC SQL FETCH C1_GTP4 INTO 			:nRecordType2:id,			:szOutSeqId2:id,			:szOutContent2:id;		*nRecordType = nRecordType2;		memcpy(szOutContent, szOutContent2, 4000);		memcpy(szOutSeqId, szOutSeqId2, LEN_SEQ);	EXEC SQL CLOSE C1_GTP4;*/		Unlock();	return 0;/*notfound:	EXEC SQL CLOSE C1_GTP4;	Unlock();	return 2;sql_error:	EXEC SQL CLOSE C1_GTP4;	Unlock();#ifdef LOG_ERROR	snprintf(szMsg, 512, "ORA:DbGTPSelect2: %.70s", sqlca.sqlerrm.sqlerrmc);    logOra(sErrLog, szMsg);#endif*/	return 3;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -