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

📄 set3database.cpp

📁 mcgs的数据导出源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	m_ctrlTimeEnd.GetTime(&system1);
	system.wHour = system1.wHour;
	system.wMinute = system1.wMinute;
	system.wSecond = system1.wSecond;
	m_Dlg->m_endTime = system;	
	*pResult = 0;
}

void CSet3Database::OnDatetimechangeDatetimepicker3(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	m_Dlg->m_strDataName = m_DateName;
	SYSTEMTIME system,system1;
	m_ctrlDayStart.GetTime(&system);
	m_ctrlTimeStart.GetTime(&system1);
	system.wHour = system1.wHour;
	system.wMinute = system1.wMinute;
	system.wSecond = system1.wSecond;
	COleDateTime startTime,endTime;
	m_Dlg->m_startTime = system;
	
	m_ctrlDayEnd.GetTime(&system);
	m_ctrlTimeEnd.GetTime(&system1);
	system.wHour = system1.wHour;
	system.wMinute = system1.wMinute;
	system.wSecond = system1.wSecond;
	m_Dlg->m_endTime = system;	
	*pResult = 0;
}

void CSet3Database::OnDatetimechangeDatetimepicker4(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	m_Dlg->m_strDataName = m_DateName;
	SYSTEMTIME system,system1;
	m_ctrlDayStart.GetTime(&system);
	m_ctrlTimeStart.GetTime(&system1);
	system.wHour = system1.wHour;
	system.wMinute = system1.wMinute;
	system.wSecond = system1.wSecond;
	COleDateTime startTime,endTime;
	m_Dlg->m_startTime = system;
	
	m_ctrlDayEnd.GetTime(&system);
	m_ctrlTimeEnd.GetTime(&system1);
	system.wHour = system1.wHour;
	system.wMinute = system1.wMinute;
	system.wSecond = system1.wSecond;
	m_Dlg->m_endTime = system;	
	*pResult = 0;
}

void CSet3Database::OnSelchangeCombo2() 
{
	// TODO: Add your control notification handler code here
	// TODO: Add your control notification handler code here
	UpdateData();
	m_bShowFinish = true;
	/*int iSel = ((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurSel();
	if(iSel == CB_ERR)	//没有选择
	{
		m_bShowFinish = false;
	}*/
	
	int iSel = ((CComboBox*)GetDlgItem(IDC_COMBO2))->GetCurSel();
	if(iSel == CB_ERR)	//没有选择
	{
		m_bShowFinish = false;
	}
	else
	{
		((CComboBox*)GetDlgItem(IDC_COMBO2))->GetLBText(iSel,m_DateName);
	}
	
	if(m_strSaveDBName.IsEmpty())	//没有选择
	{
		m_bShowFinish = false;
	}
	if ( !m_bShowFinish )
	{
		m_Dlg->SetWizButton(2);
		return ;
	}
	else
	{
		UpdateData(FALSE);
		m_Dlg->SetWizButton(5);	
		SetConnect();
	}
	m_Dlg->m_iType = 1;
	
	CString str = m_strConnect;
	str.MakeUpper();
	if (str.Find("SQL") >= 0)
	{
		m_Dlg->m_ConnectSql = str;
		((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(FALSE);
		m_Dlg->m_databaseType = 0;
	}
	else if (str.Find("ACCESS") >= 0)
	{
		((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(TRUE);
		m_Dlg->m_ConnectSql = m_strSaveDBName;
		m_Dlg->m_databaseType = 1;
	}
	else
	{
		m_Dlg->m_ConnectSql = str;
		m_Dlg->m_databaseType = 2;
	}
	m_Dlg->m_strDataName = m_DateName;
}

void CSet3Database::SetConnect(BYTE bCreate)
{
	UpdateData(TRUE);
	CString strConnect;
	CString m_strSaveResult;
	{
		CString str = m_strSaveDriver;
		str.MakeUpper ();
		CString strPassword("********************************************************************************");
		strPassword = strPassword.Left (m_strSavePassword.GetLength ());
		
		if (str.Find("SQL") >= 0)
		{
			m_strSaveResult = McgsString( IDS_FORMAT_STR_28 ) + m_strSaveDriver;
			m_strSaveResult += McgsString( IDS_FORMAT_STR_29 ) + m_strSaveServer;
			m_strSaveResult += McgsString( IDS_FORMAT_STR_30 ) + m_strSaveDBName;
			m_strSaveResult += McgsString( IDS_FORMAT_STR_31 ) + m_strSaveUserName;
			m_strSaveResult +=  McgsString( IDS_FORMAT_STR_32 ) + strPassword;
			m_strSaveResult += McgsString( IDS_FORMAT_STR_33 );		
			
			strConnect = "UID=" + m_strSaveUserName;
			strConnect += ";PWD=" + m_strSavePassword;
			strConnect += ";DATABASE=" + m_strSaveDBName;
			strConnect += ";SERVER=" + m_strSaveServer;
			strConnect += ";DRIVER={" + m_strSaveDriver;
			strConnect += "};DSN='';";
			m_Dlg->m_ConnectSql = strConnect;
		}
		else if (str.Find("ACCESS") >= 0)
		{
			m_strSaveResult = McgsString( IDS_FORMAT_STR_28 ) + m_strSaveDriver;
			m_strSaveResult += McgsString( IDS_FORMAT_STR_30 ) + m_strSaveDBName;
			m_strSaveResult +=  McgsString( IDS_FORMAT_STR_33 );
			
			strConnect = "DBQ=" + m_strSaveDBName + ";DRIVER={" + m_strSaveDriver + "};DSN='';Uid=Admin; Pwd=";
			
			//如果是ACCESS数据库,不存在的话就创建一个.
			HANDLE handle = NULL;
			CString strFileName = m_strSaveDBName;	//是否带有绝对路径
			int iPos1 = strFileName.Find(_T('\\'));
			if (iPos1 !=-1)
			{
				WIN32_FIND_DATA data;
				handle = FindFirstFile(strFileName,&data);
				if (handle ==INVALID_HANDLE_VALUE)
				{
					if (bCreate)
					{
						try
						{
							CDaoDatabase dbSystem(&((CData_TransApp*)AfxGetApp())->m_WorkSpace);
							dbSystem.Create(strFileName,dbLangGeneral);
						}
						catch(CException* e)
						{
							e->Delete();
						}
					}
				}
				else
				{
					FindClose(handle);
				}
			}
			m_Dlg->m_ConnectSql = m_strSaveDBName;
		}
		else if (str.Find("ORACLE") >= 0)
		{
			m_strSaveResult = McgsString( IDS_FORMAT_STR_28 ) + m_strSaveDriver;
			m_strSaveResult += "\r\nConnectString" + m_strSaveDBName;
			m_strSaveResult += McgsString( IDS_FORMAT_STR_31 ) + m_strSaveUserName;
			m_strSaveResult += McgsString( IDS_FORMAT_STR_32 ) + strPassword;
			m_strSaveResult += McgsString( IDS_FORMAT_STR_33 );		
			
			strConnect = "UID=" + m_strSaveUserName + ";PWD=" + m_strSavePassword + ";ConnectString=" + m_strSaveDBName + 
				";DRIVER={" + m_strSaveDriver + "};DSN='';";
		}
	}

	m_strConnect = strConnect ;	
	
	SYSTEMTIME system,system1;
	m_ctrlDayStart.GetTime(&system);
	m_ctrlTimeStart.GetTime(&system1);
	system.wHour = system1.wHour;
	system.wMinute = system1.wMinute;
	system.wSecond = system1.wSecond;
	COleDateTime startTime,endTime;
	m_Dlg->m_startTime = system;
	
	m_ctrlDayEnd.GetTime(&system);
	m_ctrlTimeEnd.GetTime(&system1);
	system.wHour = system1.wHour;
	system.wMinute = system1.wMinute;
	system.wSecond = system1.wSecond;
	m_Dlg->m_endTime = system;	
	
}
#include "zlib.h"
void CSet3Database::OnButton1() 
{
// TODO: Add your control notification handler code here
	// TODO: Add your control notification handler code here
	CFileDialogST	dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, _T("All files\0*.*\0"), this);
	CString			sPathName;
	int				nRetValue;

	nRetValue = dlg.DoModal();
	if (nRetValue == IDOK)
	{
		POSITION	Pos;

		Pos = dlg.GetStartPosition();
		while (Pos != NULL)
		{
			sPathName = dlg.GetNextPathName(Pos);
		} // while
	} // if
	else
	{
		return ;
	}
	m_FileName = sPathName;
	CData_TransApp* pApp = (CData_TransApp*)AfxGetApp();
	m_FilePath = pApp->McgsGetPath(m_FileName);
	m_FilePath += "\\database";
	UpdateData(FALSE);
	// TODO: Add your control notification handler code here
	//默认的名称
	//对文件进行操作
	CFile file;
	try
	{
		CString strFileName;
		int iPos1 = m_FileName.ReverseFind(_T('\\'));
		strFileName = m_FileName.Mid( iPos1+1 );
		//if (strFileName.CompareNoCase( "BECCA_DATA.ini") != 0)
		if (strFileName.CompareNoCase( "Urtedata.usi") != 0)
		{
			AfxMessageBox("please choose file name is Urtedata.usi");
			m_Dlg->SetWizButton(4);
			return ;
		}
		if( !file.Open( m_FileName , CFile::modeRead ) )
		{
			m_Dlg->SetWizButton(4);
			return;
		}
		//清楚原来的索引信息
		for (int i=0;i<m_Dlg->m_arrayInfoFile.GetSize();++i)
		{
			delete m_Dlg->m_arrayInfoFile[i];
		}
		m_Dlg->m_arrayInfoFile.RemoveAll();
		CByteArray Buff;
		Buff.SetSize(file.GetLength());
		file.Read(Buff.GetData(),file.GetLength());
		COwnerArchive ar(COwnerArchive::storing);
		ar.SvrWrite (Buff);
		ar.SvrSeekToBegin ();
		ar.SvrChangeMode (COwnerArchive::load);
		
		int Size ;
		ar >> Size;	//对象数目
		m_Dlg->m_arrayInfoFile.SetSize(Size);
		m_Dlg->m_strArray.SetSize(Size);
		if(Size != 1)
		{
			AfxMessageBox(_T("该版本为临时版本,只能导出只有一个组对象的工程数据!"));
			return;
		}
		for (i=0; i<Size; ++i)
		{
			CString DataName;
			ar >> DataName;	// 组对象名
			
			m_Dlg->m_arrayInfoFile[i] = new CVirtualInfoFile(DataName);
			int idsize;		
			ar >> idsize;	//对象的成员数
			m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo.SetSize(idsize+2);
			{	//添加毫秒和秒
	
				//m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[0].m_name = "MCGS_Time";
				m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[0].m_name = "Becca_Time";
				m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[0].m_type = 10;	
				m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[1].m_name = "Becca_TimeMS";
				m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[1].m_type = 1;		
			}
			CString strName;
			for (int j=0;j<idsize;++j)
			{
				int iType;
				ar >> iType;// 数据对象类型
				ar >> strName;// 数据对象名
				
				m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[j+2].m_name = strName;
				m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[j+2].m_type = iType;
				m_Dlg->m_strArray[i].Add(strName);
			}
			CByteArray BuffTemp;
			//处理读到的buff,看看是不是压缩过的
			DWORD szdata = ar.SvrGetRealBufferSize() - ar.SvrGetBufferSize();
			CByteArray dataBuff;
			dataBuff.SetSize(szdata);
			ar.SvrRead(dataBuff);
			if(dataBuff.GetSize() > 2 * sizeof(long))
			{
				long lHead = 123456;
				memcpy(&lHead,dataBuff.GetData(),sizeof(long));
				if(lHead == 0)
				{
					//这是一份压缩后的数据,需要先做解压缩处理
					//取出解压缩后的长度信息
					unsigned long iOriginSize = 0;
					memcpy(&iOriginSize,dataBuff.GetData() + sizeof(long),sizeof(long));
					BuffTemp.SetSize(iOriginSize);
					uncompress(BuffTemp.GetData(),&iOriginSize,dataBuff.GetData() + 2 * sizeof(long),
						dataBuff.GetSize() - 2 * sizeof(long) );
				}	
				else
				{
					BuffTemp.SetSize(dataBuff.GetSize());
					memcpy(BuffTemp.GetData(),dataBuff.GetData(),dataBuff.GetSize());
				}
			}
			else
			{
				BuffTemp.SetSize(dataBuff.GetSize());
				memcpy(BuffTemp.GetData(),dataBuff.GetData(),dataBuff.GetSize());
			}
			COwnerArchive arTemp(COwnerArchive::storing);
			arTemp.SvrWrite (BuffTemp);
			arTemp.SvrSeekToBegin ();
			arTemp.SvrChangeMode (COwnerArchive::load);
			int FileNum;
			arTemp >> m_Dlg->m_arrayInfoFile[i]->m_timeEnd;
			arTemp >> m_Dlg->m_arrayInfoFile[i]->m_timeStart;
			arTemp >> FileNum;
			
			for (j=0; j<FileNum;++j)
			{
				CVirtualSaveStruct c;
				c.m_strGroupObjName = DataName;
				//::AfxMessageBox(DataName); 
				c.m_strDataSavePath = m_FilePath;
				//::AfxMessageBox(m_FilePath); 
				c.Serialize (arTemp);
				
				//::AfxMessageBox(c.m_strFileName); //文件名:如:23172320050916.000
				COleDateTime oleDtstrat,oleDtend;
				oleDtstrat.ParseDateTime("2003-12-31 11:11:11");
				oleDtend.ParseDateTime("2006-12-31 11:11:11");
				COleDateTime strat(c.m_timeStart);
				COleDateTime end(c.m_timeEnd);

				/*COleDateTime strat(c.m_timeStart);
				COleDateTime end(c.m_timeEnd);
				CString str,str1;
				str=strat.Format("%Y-%m-%d,%H:%M:%S");
				str1=end.Format("%Y-%m-%d,%H:%M:%S");*/

				//if(c.m_timeStart>=1126520250 && c.m_timeEnd<=1126537066)
				if(strat>=oleDtstrat && end<=oleDtend)
				{
					m_Dlg->m_arrayInfoFile[i]->m_arraySaveInfo.Add(c);
				}
			}
		}
	}
	catch(CException* e)
	{
		e->Delete();
		file.Close();
		return ;
	}
	m_bTure = true;
	m_Dlg->SetWizButton(0);	
	((CComboBox*)GetDlgItem(IDC_COMBO2))->Clear();
	for (int i=0;i<m_Dlg->m_arrayInfoFile.GetSize();++i)
	{
		((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString(m_Dlg->m_arrayInfoFile[i]->SvrGetFileName());
	}
}

void CSet3Database::OnEditchangeCombo3() 
{
	int i = m_DataType.GetCurSel();
	if(i != CB_ERR)	//没有选择
	{
		if (i==0)	//表示要转换成文本文件
		{	
			m_Dlg->m_Type = 1;
		}
		else	//表示要转换成数据库
		{
			m_Dlg->m_Type = 2;
		}
		m_Dlg->SetWizButton(3);	
	}
	else
	{
		m_Dlg->m_Type = 0;
	}		
}

⌨️ 快捷键说明

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