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

📄 asnerror.cpp

📁 Mysql的处理
💻 CPP
字号:
#include "oradb.h"/*********************************************************      filename							:ASNERROR.pc*			 function descrpition	:insert data into database ASNERRORxxxxxxxxxx *			 input								:struct S_ASNERROR *	*			 output								:SQL_OK ( operation sucess) SQL_RET_ERRO (operation failed)*			 date									:2006-05-22**********************************************************/int DbASNERRORInsert(struct S_ASNERROR* pIn, struct S_RESULT* pOut){	char *GtpId=(char *)pIn->GtpId;	char *Content=(char *)pIn->Content;	int Cause=pIn->Cause;	char *GtpName=(char *)pIn->GtpName;		char *TableName=(char *)pIn->TableName;	char *GsnId = pIn->GsnId;	char szMsg[512];	char szSQL[SQLMAX];	char SeqId[LEN_SEQ + 1];/*	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_ASNERROR.NEXTVAL 	INTO :SeqId 	FROM DUAL;	*/		snprintf(szSQL,SQLMAX,"INSERT INTO %s("				"GTPID,GTPLTABLE,CONTENT,"      				"ERRORCAUSE,DATECREATED,GSNID) VALUES("  				"'%s','%s','%s',"				"%d,CURDATE(),'%s')",				TableName,				 GtpId,GtpName,Content,				 Cause, GsnId);	#ifdef _DEBUG	logOra(sErrLog, szSQL);#endif/*	snprintf(szSQL,SQLMAX,"INSERT INTO %s("				"SEQID,GTPID,GTPLTABLE,CONTENT,"      				"ERRORCAUSE,DATECREATED,GSNID) VALUES("  				":x1,:x2,:x3,:x4,:x5,"				"SYSDATE,:x6)",				TableName);					*/	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();	return 0;}/************************************************************************      filename							:ASNERROR.pc*			 function descrpition	:get records from database OMCDRxxxxxxxxxx *			 input								:Tablename,Condition;	*			 output								:ASNERROR is record set to store what we want,														nItems is counter of those record set,S_RESULT													  is flag to tell us about operation is sucessful or not;*			 date									:2006-05-22*************************************************************************************/int DbASNERRORSelect(char* pInSzTableName, char* pWhere, struct S_ASNERROR** pOutCDR, int *nItems, struct S_RESULT* pOut){	short ind[7];	int RecordType;	char GtpId[LEN_SEQ + 1];	char GtpName[LEN_TABLENAME + 1];	char SeqId[LEN_SEQ + 1];	char Content[LEN_CONTENT + 1];	int Cause;	char DateCreated[LEN_DATETIME + 1];	char GsnId[10 + 1];	char TableName[LEN_TABLENAME + 1];		/*	EXEC SQL BEGIN DECLARE SECTION;		EXEC SQL VAR  GtpId IS STRING(LEN_SEQ + 1);		EXEC SQL VAR  GtpName IS STRING(LEN_TABLENAME + 1);		EXEC SQL VAR  SeqId IS STRING(LEN_SEQ + 1);		EXEC SQL VAR  Content IS STRING(LEN_CONTENT + 1);		EXEC SQL VAR  DateCreated IS STRING(LEN_DATETIME + 1);		EXEC SQL VAR  GsnId IS STRING(10 + 1);	EXEC SQL END DECLARE SECTION;	struct S_ASNERROR *pASNERROR=*pOutCDR ;	int nNumber = 0;	char szMsg[512];	char szSQL[SQLMAX];	char szSQL2[SQLMAX];	struct S_ASNERROR* p2;	int j;	char * sz ;	if(pASNERROR != NULL)	{		return -1;	}	snprintf(szSQL2, SQLMAX, 		"SELECT COUNT(*) FROM %s WHERE %s",		pInSzTableName,pWhere);				snprintf(szSQL,SQLMAX,"SELECT ""SEQID,GTPID,GTPLTABLE,CONTENT,ERRORCAUSE,DATECREATED,""GSNID FROM %s WHERE %s",pInSzTableName,pWhere);		#ifdef _DEBUG	logOra(sErrLog, szSQL);#endif	Lock();	EXEC SQL WHENEVER SQLERROR GOTO sql_error2; 	EXEC SQL PREPARE stat2 FROM :szSQL2;	EXEC SQL DECLARE ASNERROR2 CURSOR FOR stat2;	EXEC SQL OPEN ASNERROR2;	EXEC SQL WHENEVER NOT FOUND goto notfound2;	EXEC SQL FETCH ASNERROR2 INTO :nNumber;	EXEC SQL CLOSE ASNERROR2;	                                                       		    	sz = malloc(SIZE_S_ASNERROR*nNumber);	memset(sz, 0, SIZE_S_ASNERROR*nNumber);	EXEC SQL WHENEVER SQLERROR GOTO sql_error; 	EXEC SQL PREPARE stat FROM :szSQL;	EXEC SQL DECLARE ASNERROR1 CURSOR FOR stat;	EXEC SQL OPEN ASNERROR1;	EXEC SQL WHENEVER NOT FOUND goto notfound;		#ifdef _DEBUG	logOra(sErrLog, "CURSOR...");#endif	for(j=0;j<nNumber;j++)	{		EXEC SQL FETCH ASNERROR1 INTO :SeqId:ind[0],     :GtpId:ind[1],:GtpName:ind[2],:Content:ind[3],                                 :Cause:ind[4],:DateCreated:ind[5],:GsnId:ind[6];                             		p2 = (struct S_ASNERROR* )&sz[SIZE_S_ASNERROR*j];		 memcpy(p2->SeqId,SeqId,LEN_SEQ);                                          		 memcpy(p2->GtpId,GtpId,LEN_SEQ);																								 memcpy(p2->GtpName,GtpName,LEN_TABLENAME);                                     		 memcpy(p2->Content,Content,4000);                                     		p2->Cause=Cause;		memcpy(p2->DateCreated,DateCreated,LEN_DATETIME);                            		                                          			memcpy(p2->GsnId,GsnId,11);                                                                            		}                                                                           	                                                                          		* pOutCDR = (struct S_ASNERROR* )sz;                                               		* nItems = nNumber;	                                                     	notfound:                                                                         	EXEC SQL CLOSE ASNERROR1;	Unlock();	pOut->nFlag = SQL_OK;	return 0;notfound2:	EXEC SQL CLOSE ASNERROR2;	Unlock();	return 0;sql_error:	EXEC SQL CLOSE ASNERROR1;	Unlock();	pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR	snprintf(szMsg, 512, "ORA:DbASNERRORSelect: %.70s", sqlca.sqlerrm.sqlerrmc);    logOra(sErrLog, szMsg);#endif	EXEC SQL WHENEVER SQLERROR CONTINUE; 	onError();		return 1;sql_error2:	EXEC SQL CLOSE ASNERROR2;	Unlock();	pOut->nFlag = SQL_RET_ERROR;#ifdef LOG_ERROR	snprintf(szMsg, 512, "ORA:DbASNERRORSelect: %.70s", sqlca.sqlerrm.sqlerrmc);    logOra(sErrLog, szMsg);#endif	EXEC SQL WHENEVER SQLERROR CONTINUE; 	onError();*/		return 1;}

⌨️ 快捷键说明

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