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

📄 cdrreadforbill.cpp

📁 Mysql的处理
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	char szTab1[20],szTab2[20];	if(!GetSQL(szTableDate,szTableDate2,szSQLWhere,szSeqId,		szTab1, szTab2, SQLmcdr))		return false;	CDate date(szTab1, szTab2);//	CDate date(szTableDate, szTableDate2);	date.Calculate();	int all = date.GetCount();		//[3]读取列表	for(int kk=0;kk<all;kk++)	{		char dString[20];		string dString2 = date.GetAt(kk);		snprintf(dString, 20, "%s", dString2.c_str());		char szTableName[LEN_TABLENAME+1];		snprintf(szTableName, LEN_TABLENAME+1, "OMCDR%s", dString);				S_OMCDR_LOAD* pCDR = NULL;				memset(&m_Out,0,sizeof(m_Out));		if(DbOMCDRSelect((char*)szTableName, (char*)SQLmcdr, &pCDR, &nOutNumber1, &m_Out))		{			return false;		}				if(nOutNumber1>0)		{			m_nCdrs.push_back(pCDR);			m_nCountCdrs.push_back(nOutNumber1);		}				for(int i=0;i<nOutNumber1;i++)		{			S_OMCDR_LOAD* pCDR2 = &pCDR[i];			char *szSeqId = pCDR2->SeqId;			pCDR2->pChangeLocation = NULL;			pCDR2->nChangeLocation = 0;			pCDR2->RecordType = sgsnMMRecord;						snprintf(szTableName, LEN_TABLENAME+1, "LCLOC_OM%s", dString);			if(DbLCLOCSelect(szTableName, szSeqId, 				&pCDR->pChangeLocation, &pCDR->nChangeLocation, &m_Out) != 0)			{				return false;			}		}	}			//[4]写上输出结果	//[4-1]计算总长度	int nCdrs = m_nCountCdrs.size();	for(i=0;i<nCdrs;i++) 		*nOutNumber+= m_nCountCdrs.at(i);			//[4-2]分配空间	S_OMCDR_LOAD *ppCDR2 = NULL;		if(*nOutNumber>0)		ppCDR2 = (S_OMCDR_LOAD*)malloc(*nOutNumber* SIZE_S_OMCDR_LOAD);		//[4-3]组装结构	int index=0;	for(i=0,index=0;i<nCdrs;i++)	{		S_OMCDR_LOAD* p = m_nCdrs.at(i);		if(p != NULL)		{			int size = m_nCountCdrs.at(i);			memcpy(&ppCDR2[index], p, size* SIZE_S_OMCDR_LOAD);			index+=size;						if(p->pChangeLocation != NULL)			{				free(p->pChangeLocation);				p->pChangeLocation = NULL;			}			free(p);			p = NULL;		}	}		*ppCDR = ppCDR2;			//[4-4]释放空间	m_nCdrs.clear();	//count	m_nCountCdrs.clear();	return true;}//数据从原始的表OMOCDR中查询bool C_CDRReadForBill::SelectMOCDR(								   const char* szTableDate,								   const char* szTableDate2,								   const char* szSQLWhere,								   		char *szSeqId,S_OMOCDR** ppCDR, int *nOutNumber){	int i;	int result;	//List	vector<S_OMOCDR*> m_nCdrs;	//count	vector<int> m_nCountCdrs;		int nOutNumber1; 		int j;	//[1]返回值设置为0	*nOutNumber=0;		//[2]计算时间段	char szTab1[20],szTab2[20];	if(!GetSQL(szTableDate,szTableDate2,szSQLWhere,szSeqId,		szTab1, szTab2, SQLmocdr))		return false;	CDate date(szTab1, szTab2);//	CDate date(szTableDate, szTableDate2);	date.Calculate();	int all = date.GetCount();		//cout << "######" << all << endl;	//[3]读取列表	for(int kk=0;kk<all;kk++)	{		char dString[20];		string dString2 = date.GetAt(kk);		snprintf(dString, 20, "%s", dString2.c_str());		char szTableName[LEN_TABLENAME+1];		snprintf(szTableName, LEN_TABLENAME+1, "OMOCDR%s", dString);						S_OMOCDR* pCDR = NULL;				memset(&m_Out,0,sizeof(m_Out));		if(DbOMOCDRSelect((char*)szTableName, (char*)SQLmocdr, &pCDR, &nOutNumber1, &m_Out))		{			return false;		}						if(nOutNumber1>0)		{			m_nCdrs.push_back(pCDR);			m_nCountCdrs.push_back(nOutNumber1);		}			}			//[4]写上输出结果	//[4-1]计算总长度	int nCdrs = m_nCountCdrs.size();	for(i=0;i<nCdrs;i++) 		*nOutNumber+= m_nCountCdrs.at(i);			//[4-2]分配空间	S_OMOCDR *ppCDR2 = NULL;		if(*nOutNumber>0)		ppCDR2 = (S_OMOCDR*)malloc(*nOutNumber* SIZE_S_OMOCDR);		//[4-3]组装结构	int index=0;	for(i=0,index=0;i<nCdrs;i++)	{		S_OMOCDR* p = m_nCdrs.at(i);		if(p != NULL)		{			int size = m_nCountCdrs.at(i);			memcpy(&ppCDR2[index], p, size* SIZE_S_OMOCDR);			index+=size;						free(p);			p = NULL;		}	}	*ppCDR = ppCDR2;			//[4-4]释放空间	m_nCdrs.clear();	//count	m_nCountCdrs.clear();	return true;}//数据从原始的表OMTCDR中查询bool C_CDRReadForBill::SelectMTCDR(								   const char* szTableDate,								   const char* szTableDate2,								   const char* szSQLWhere,								   		char *szSeqId,S_OMTCDR** ppCDR, int *nOutNumber){	int i;	int result;	//List	vector<S_OMTCDR*> m_nCdrs;	//count	vector<int> m_nCountCdrs;			int nOutNumber1; 		//int j;	//[1]返回值设置为0	*nOutNumber=0;		//[2]计算时间段	char szTab1[20],szTab2[20];	if(!GetSQL(szTableDate,szTableDate2,szSQLWhere,szSeqId,		szTab1, szTab2, SQLmtcdr))		return false;	CDate date(szTab1, szTab2);//	CDate date(szTableDate, szTableDate2);	date.Calculate();	int all = date.GetCount();		//cout << "######<>#############" << all << endl;	//[3]读取列表	int kk;	for(kk=0;kk<all;kk++)	{		char szTableName[LEN_TABLENAME+1];		char dString[20];		string dString2 = date.GetAt(kk);		snprintf(dString, 20, "%s", dString2.c_str());		snprintf(szTableName, LEN_TABLENAME+1, "OMTCDR%s", dString);				S_OMTCDR* pCDR = NULL;				memset(&m_Out,0,sizeof(m_Out));		if(DbOMTCDRSelect((char*)szTableName, (char*)SQLmtcdr, &pCDR, &nOutNumber1, &m_Out))		{			cout << "#13333" << endl;			return false;		}				if(nOutNumber1>0)		{			m_nCdrs.push_back(pCDR);			m_nCountCdrs.push_back(nOutNumber1);		}				for(int i=0;i<nOutNumber1;i++)		{			S_OMTCDR* pCDR2 = &pCDR[i];			pCDR2->RecordType = sgsnSMTRecord;		}	}			//[4]写上输出结果	//[4-1]计算总长度	int nCdrs = m_nCountCdrs.size();	for(i=0;i<nCdrs;i++) 		*nOutNumber+= m_nCountCdrs.at(i);			//[4-2]分配空间	S_OMTCDR *ppCDR2 = NULL;		if(*nOutNumber>0)	{		ppCDR2 = (S_OMTCDR*)malloc(*nOutNumber* SIZE_S_OMTCDR);	}		//[4-3]组装结构	int index=0;	for(i=0,index=0;i<nCdrs;i++)	{		S_OMTCDR* p = m_nCdrs.at(i);		if(p != NULL)		{			int size = m_nCountCdrs.at(i);			memcpy(&ppCDR2[index], p, size* SIZE_S_OMTCDR);			index+=size;						free(p);			p = NULL;		}	}	*ppCDR = ppCDR2;			//[4-4]释放空间	m_nCdrs.clear();	//count	m_nCountCdrs.clear();		return true;}void C_CDRReadForBill::Test(){}bool C_CDRReadForBill::BsFileInsert(S_BSFILE* p){	char TableName[LEN_TABLENAME+1];	char szTableDate[20];	snprintf(szTableDate, 20, "%s", GetSysdate());	snprintf(TableName, LEN_TABLENAME+1, "BSFILE%s", szTableDate);	snprintf(p->TableName, LEN_TABLENAME+1, "%s",TableName); 	DbBsFileInsert(p);	printf("!Table=%s:Seq=%s!\n", p->TableName, p->SeqId);	//Commit();	return true;}bool C_CDRReadForBill::CdrFileInsert(S_CDRFILE* p, int nNumber){	printf("C_CDRReadForBill::CdrFileInsert 1\n");	printf("C_CDRReadForBill::CdrFileInsert 2 '%s'\n", p->FileTable);	char TableName[LEN_TABLENAME+1];	char szTableDate[31];	//时间修改成文件对应的表	snprintf(szTableDate, 31, "%s", &p->FileTable[6]);//GetSysdate());	snprintf(TableName, LEN_TABLENAME+1, "LCDRFILE_%s", szTableDate);	printf("C_CDRReadForBill::CdrFileInsert 3 '%s' '%s'\n", szTableDate, TableName);//	for(int i=0;i<nNumber;i++)	{		snprintf(p->TableName, LEN_TABLENAME+1, "%s",TableName); 		printf("C_CDRReadForBill::CdrFileInsert 4 p[0]='%s'\n", p->TableName);		DbCdrFileInsert(p);	}	//####	//Commit();	printf("C_CDRReadForBill::CdrFileInsert 5\n");	return true;}void C_CDRReadForBill::Test2(){	for(int i=0;i<20;i++)	{	S_BSFILE bs;	memset(&bs,0,sizeof(bs));	snprintf(bs.FileLoc,4001,"../bs/bill/CGF.ALCATEL#SGSNCDR-3.20060724-151115.172#21#4#1!");	bs.RuleId[0] = '2';	BsFileInsert(&bs);	S_CDRFILE p[2];	memset(&p[0], 0, sizeof(p));	int cc=1;	for(int i=0;i<cc;i++)	{		p[i].CDRType[0]='1';		snprintf(p[i].CDRTable,30,"SCDR02020022%d", i);		snprintf(p[i].FileTable,31,"%s", bs.TableName);		snprintf(p[i].FileId,21,"%s", bs.SeqId);			p[i].SeqId[0]='222';	}			CdrFileInsert(&p[0], cc);	Commit();	}}

⌨️ 快捷键说明

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