📄 lcomm.cpp
字号:
#include "oradb.h"void C_MYSQL::DbLCOMMTest(){ S_LCOMM pIn8; S_RESULT pOut8; memset(&pIn8,0,sizeof(pIn8)); pIn8.SubId=2; snprintf(pIn8.SGSNAddr,LEN_SGSNAddr + 1,"2"); memcpy(pIn8.CauseForRecordClosing,"111111",2); memcpy(pIn8.RSN,"11111111",5); memcpy(pIn8.LRSN,"11111111",5); pIn8.SystemType=2; pIn8.SGSNChange=2; snprintf(pIn8.NodeId,LEN_NodeID+1,"2"); pIn8.RNC=2; snprintf(pIn8.RecordExtensions,LEN_RecordExtensions+1,"2"); snprintf(pIn8.TableName,LEN_TABLENAME + 1,"LCOMM"); snprintf(pIn8.SortId,LEN_SORT+1,"2"); DbLCOMMInsert(&pIn8, &pOut8);}int C_MYSQL::DbLCOMMInsert(struct S_LCOMM* p, struct S_RESULT* pOut){ char szMsg[512]; char* TableName = p->TableName; char* SeqId = p->SeqId; int SubId = p->SubId; char* SGSNAddr = p->SGSNAddr; char* CauseForRecordClosing = p->CauseForRecordClosing; char* RSN = p->RSN; char* LRSN = p->LRSN; char* RecordExtensions = p->RecordExtensions; int SystemType = p->SystemType; int SGSNChange = p->SGSNChange; char *NodeId = p->NodeId; int RNC = p->RNC; char* SortId = p->SortId; char szSQL[SQLMAX]; snprintf(szSQL, SQLMAX, "INSERT INTO %s (" "SEQID," "SUBID," "SGSNADDR," "CAUSERECORDCLOSING," "RECORDSEQUENCENUMBER," "LOCALRECORDSEQUENCENUMBER," "SYSTEMTYPE," "SGSNCHANGE," "NODEID," "RNCUDVOLUMN," "RECORDEXTENSIONS" ",SORTID" ") VALUES(" "%s," "%d,'%s',%s,%s," "%s,%d,%d,'%s',%d,'%s',%s)", TableName, SeqId[0]==0?"NULL":SeqId, SubId,SGSNAddr, CauseForRecordClosing[0]==0?"NULL":CauseForRecordClosing, RSN[0]==0?"NULL":RSN, LRSN[0]==0?"NULL":LRSN, SystemType,SGSNChange,NodeId,RNC,RecordExtensions, SortId[0]==0?"NULL":SortId); #ifdef _DEBUG logOra(sErrLog, szSQL);#endif Lock(); int res = mysql_real_query(myConnect, szSQL, strlen(szSQL)); if(res != 0) { Unlock(); onError(); return -1; } Unlock(); return 0;}int C_MYSQL::DbLCOMMSelect(char* pInSzTableName, char* pInSzSeqId, struct S_LCOMM** pOutLChangeLocation, int * number, struct S_RESULT* pOut){ char szMsg[512]; char SeqId[LEN_SEQ + 1]; int SubId; char SGSNAddr[45 + 1]; char CauseForRecordClosing[3]; char RSN[11]; char LRSN[11]; int SystemType; int SGSNChange; char NodeId[21]; char RecordExtensions[LEN_RecordExtensions]; int RNC; char SortId[LEN_SORT+1]; struct S_LCOMM *pLCLOC = *pOutLChangeLocation; int nNumber = 0; char szSQL[SQLMAX]; char szSQL2[SQLMAX]; struct S_LCOMM* p2; int j; char * sz ; short id[10]; if(pLCLOC != NULL) { return -1; } snprintf(szSQL2, SQLMAX, "SELECT COUNT(*) FROM %s WHERE SEQID=%s", pInSzTableName, pInSzSeqId); snprintf(szSQL, SQLMAX, "SELECT " "SEQID," "SUBID," "SGSNADDR," "CAUSERECORDCLOSING," "RECORDSEQUENCENUMBER," "LOCALRECORDSEQUENCENUMBER," "SYSTEMTYPE," "SGSNCHANGE," "NODEID," "RNCUDVOLUMN," "RECORDEXTENSIONS" ",SORTID" " FROM %s WHERE SEQID=%s", pInSzTableName, pInSzSeqId);#ifdef LOG_SELECT logOra(sErrLog, szSQL);#endif *number = 0; Lock(); nNumber = DbCount(szSQL2, myConnect); if(nNumber <= 0) { Unlock(); * number = 0; return 0; } sz = (char*)malloc(SIZE_S_LCOMM*nNumber); memset(sz, 0, SIZE_S_LCOMM*nNumber); mysql_real_query(myConnect, szSQL, strlen(szSQL)); MYSQL_RES *res_ptr = mysql_store_result(myConnect); if (res_ptr == NULL) { Unlock(); onError(); return -1; } MYSQL_ROW sqlrow;#ifdef _DEBUG logOra(sErrLog, "CURSOR...");#endif for(j=0;j<nNumber;j++) { sqlrow = mysql_fetch_row(res_ptr); p2 = (struct S_LCOMM*)&sz[SIZE_S_LCOMM*j]; if(sqlrow[0] != NULL) memcpy(p2->SeqId, sqlrow[0], 20); if(sqlrow[1] != NULL) p2->SubId = atoi(sqlrow[1]); if(sqlrow[2] != NULL) memcpy(p2->SGSNAddr, sqlrow[2], 45); if(sqlrow[3] != NULL) memcpy(p2->CauseForRecordClosing, sqlrow[3], 2); if(sqlrow[4] != NULL) memcpy(p2->RSN, sqlrow[4], 10); if(sqlrow[5] != NULL) memcpy(p2->LRSN, sqlrow[5], 10); if(sqlrow[6] != NULL) p2->SystemType = atoi(sqlrow[6]); if(sqlrow[7] != NULL) p2->SGSNChange = atoi(sqlrow[7]); if(sqlrow[8] != NULL) memcpy(p2->NodeId, sqlrow[8], 20); if(sqlrow[9] != NULL) p2->RNC =atoi(sqlrow[9]); if(sqlrow[10] != NULL) memcpy(p2->RecordExtensions, sqlrow[10], LEN_RecordExtensions); if(sqlrow[11] != NULL) memcpy(p2->SortId, sqlrow[11], LEN_SORT); memcpy(p2->TableName, pInSzTableName, LEN_TABLENAME); } mysql_free_result(res_ptr); Unlock(); * pOutLChangeLocation = (struct S_LCOMM*)sz; * number = nNumber; return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -