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

📄 readdb.cpp

📁 sms sender 察到布局图全貌
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// ReadDB.cpp: implementation of the CReadDB class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "math.h"
#include "stdlib.h"
#include "ReadDB.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CReadDB::CReadDB()
{
	try
	{
		m_db		=	new CDatabase;
		m_warnset	=	new CCurvWarnSet(m_db);
		m_opmuset	=	new COPMUWarnSet(m_db);
		m_smssetting=   new CSmsSettingMsgSet(m_db);
		m_stationset=   new CStationSet(m_db);
	    m_moniunitset=  new CMoniUnitSet(m_db);
	}
	catch(CDBException* peDB)
	{
		AfxMessageBox(peDB->m_strError);
		peDB->Delete();
		return ;
	}
}

CReadDB::~CReadDB()
{
	//清理内存
	try
	{
		delete m_opmuset;
		delete m_warnset;
		delete m_smssetting;
		delete m_stationset;
		delete m_moniunitset;
		delete m_db;
	}
	catch(CMemoryException* pEx)
   {
      pEx->Delete();
      AfxAbort();
   }
}

BOOL CReadDB::GetWarnString(CString &warnstr)
{
	warnstr=_T("");
	//连接资料库
	try
	{
		m_warnset->m_strSort="beg_t desc";
		if(!m_warnset->IsOpen())
		{
			if(m_warnset->Open ()==0)
			{
#ifdef MY_DEBUG_MSG
				AfxMessageBox("资料库连接失败!");
#else
#ifdef _DEBUG
	            TRACE("资料库连接失败!");
#endif
#endif
                warnstr=_T("");
				return FALSE;
			}
		}
		if(m_warnset->IsBOF())
		{
			warnstr=_T("");
			return FALSE;
		}
		if(!m_warnset->IsEOF())
			m_warnset->MoveFirst();
		//读取数据
		warnstr.Format("CURVE:Warning::%sto%s(Time:%s)Cable:%s;Seg:%s;Pos%f;State:%d",
			m_warnset->m_a_id,m_warnset->m_b_id,m_warnset->m_beg_t,
			m_warnset->m_cab_id,m_warnset->m_seg_id,m_warnset->m_position,
			m_warnset->m_state);
		warnstr.Remove(' ');
		m_warnset->Close();
	}
	catch(CDBException* peDB)
	{
#ifdef MY_DEBUG_MSG
		AfxMessageBox(peDB->m_strError);
#endif
		peDB->Delete();
		warnstr=_T("");
		return FALSE;
	}
	return TRUE;
}

BOOL CReadDB::GetWarnString(CString &szStationID,CString &warnstr)
{
	warnstr=_T("");
	szStationID=_T("");

	//连接资料库
	try
	{
		m_warnset->m_strSort="beg_t desc";
		if(!m_warnset->IsOpen())
		{
			if(m_warnset->Open ()==0)
			{
#ifdef MY_DEBUG_MSG
				AfxMessageBox("资料库连接失败!");
#else
#ifdef _DEBUG
	            TRACE("资料库连接失败!");
#endif
#endif
                warnstr=_T("");
				return FALSE;
			}
		}
		if(m_warnset->IsBOF())
		{
			warnstr=_T("");
			return FALSE;
		}
		if(!m_warnset->IsEOF())
			m_warnset->MoveFirst();
		//读取数据
		warnstr.Format("CURVE:Warning::%sto%s(Time:%s)Cable:%s;Seg:%s;Pos%f;State:%d",
			m_warnset->m_a_id,m_warnset->m_b_id,m_warnset->m_beg_t,
			m_warnset->m_cab_id,m_warnset->m_seg_id,m_warnset->m_position,
			m_warnset->m_state);
		szStationID=m_warnset->m_ms_id;
		szStationID.TrimLeft();
		szStationID.TrimRight();
		warnstr.Remove(' ');
		m_warnset->Close();
	}
	catch(CDBException* peDB)
	{
#ifdef MY_DEBUG_MSG
		AfxMessageBox(peDB->m_strError);
#endif
		peDB->Delete();
		warnstr=_T("");
		return FALSE;
	}
	return TRUE;
}

BOOL  CReadDB::GetWarnString(CString &szStationID,CString &warnstr,int nSMCodingType)//短信息编码类型,0-英文,1-中文
{
	warnstr=_T("");
	szStationID=_T("");
	//连接资料库
	try
	{
		m_warnset->m_strSort="beg_t desc";
		if(!m_warnset->IsOpen())
		{
			if(m_warnset->Open ()==0)
			{
#ifdef MY_DEBUG_MSG
				AfxMessageBox("资料库连接失败!");
#else
#ifdef _DEBUG
	            TRACE("资料库连接失败!");
#endif
#endif
                warnstr=_T("");
				return FALSE;
			}
		}
		if(m_warnset->IsBOF())
		{
			warnstr=_T("");
			return FALSE;
		}
		if(!m_warnset->IsEOF())
			m_warnset->MoveFirst();
		//读取数据
		CString szTmp=_T(""),szGrade=_T("");
		if(nSMCodingType==0)//0-英文
		{
			szTmp.Format("%sto%s(Time:%s)Cable:%s;Seg:%s;Pos%f",
				m_warnset->m_a_id,m_warnset->m_b_id,m_warnset->m_beg_t,
				m_warnset->m_cab_id,m_warnset->m_seg_id,m_warnset->m_position);
			szTmp.Remove(' ');
			szGrade.Format("CURVE %d Grade Warning::",m_warnset->m_state);
			warnstr=szGrade+szTmp;
		}
		else//1-中文
		{
			CString szaName,szbName,szMoniUnitID;
            GetMoniUnitIDByStationID(m_warnset->m_a_id,szMoniUnitID,szaName);
			GetMoniUnitIDByStationID(m_warnset->m_b_id,szMoniUnitID,szbName);
			szaName.TrimLeft();
			szaName.TrimRight();
			szbName.TrimLeft();
			szbName.TrimRight();
			/**warnstr.Format("曲线%d级告警:%sTO%s(时间:%s)缆名:%s;段名:%s;位置%f",
				m_warnset->m_state,szaName,szbName,m_warnset->m_beg_t,
				m_warnset->m_cab_name,m_warnset->m_seg_name,m_warnset->m_position);
				warnstr.Remove(' ');
		    **/
			CString szTime=m_warnset->m_beg_t;
			szTime.TrimLeft();
			szTime.TrimRight();
			CString szCabName=m_warnset->m_cab_name;
			szCabName.TrimLeft();
			szCabName.TrimRight();
			CString szSegName=m_warnset->m_seg_name;
			szSegName.TrimLeft();
			szSegName.TrimRight();
			warnstr.Format("曲线%d级:%s=>%s(时:%s)缆:%s;段:%s;位置%.3f",
				m_warnset->m_state,szaName,szbName,szTime.Mid(4,8),
				szCabName,szSegName,m_warnset->m_position);
		}
    	szStationID=m_warnset->m_ms_id;
		szStationID.TrimLeft();
		szStationID.TrimRight();

		m_warnset->Close();
	}
	catch(CDBException* peDB)
	{
#ifdef MY_DEBUG_MSG
		AfxMessageBox(peDB->m_strError);
#endif
		peDB->Delete();
		warnstr=_T("");
		return FALSE;
	}
	return TRUE;
}

BOOL CReadDB::GetOpmuWarn(CString &szopmu,long test_time)
{
	CString szRTU,szRTUTmp,szTmp,szResult;

    szopmu=_T("");

	szRTU=_T("");
	szRTUTmp=_T("");
	szTmp=_T("");
	szResult=_T("");
	//连接资料库
	try
	{
		//m_opmuset->m_strSort="test_time desc";
		CString tt;
		tt.Format("test_time=%ld AND status>=1 AND status<=2",test_time);
		m_opmuset->m_strFilter =tt;
		if(!m_opmuset->IsOpen())
		{
			if(m_opmuset->Open ()==0)
			{
#ifdef MY_DEBUG_MSG
				AfxMessageBox("资料库连接失败!");
#else
#ifdef _DEBUG
	            TRACE("资料库连接失败!");
#endif
#endif
                szopmu=_T("");
				return FALSE;
			}
		}
		if(m_opmuset->IsBOF())
		{
			szopmu=_T("");
			return FALSE;
		}
		if(!m_opmuset->IsEOF())
			m_opmuset->MoveFirst();
		//读取数据
		while(!m_opmuset->IsEOF())
		{
//			if( (m_opmuset->m_test_time==test_time) &&
//				(m_opmuset->m_status>=1 && m_opmuset->m_status<=2))
//			{
				if(szRTU.IsEmpty())
				{
				   szRTU.Format("%s",m_opmuset->m_station_id);
				   szRTU.TrimLeft();
				   szRTU.TrimRight();
				}

				szRTUTmp.Format("%s",m_opmuset->m_station_id);
				szRTUTmp.TrimLeft();
				szRTUTmp.TrimRight();
				if(szRTUTmp==szRTU)
				{
					szTmp.Empty();
					szTmp.Format("(Byte:%d;State:%d)",
						m_opmuset->m_alarm_no,m_opmuset->m_status);
                    szResult+=szTmp;
				}				
//			}
 	    	m_opmuset->MoveNext();
		}
		m_opmuset->Close();
	}
	catch(CDBException* peDB)
	{
#ifdef MY_DEBUG_MSG
		AfxMessageBox(peDB->m_strError);
#endif
		peDB->Delete();
		szopmu=_T("");
		return FALSE;
	}
	if(szResult.IsEmpty())
		return FALSE;
	szopmu.Format("OPMU:Warning::");
	szopmu+=szRTU;
	szopmu+=szResult;
	szopmu.Remove(' ');

	return TRUE;
}

BOOL CReadDB::GetOpmuWarn(CString &szStationID,CString& szopmu,long test_time)
{
	CString szRTU,szRTUTmp,szTmp,szResult;

	szStationID=_T("");
    szopmu=_T("");

	szRTU=_T("");
	szRTUTmp=_T("");
	szTmp=_T("");
	szResult=_T("");
	//连接资料库
	try
	{
		//m_opmuset->m_strSort="test_time desc";
		CString tt;
		tt.Format("test_time=%ld AND status>=1 AND status<=2",test_time);
		m_opmuset->m_strFilter =tt;
		if(!m_opmuset->IsOpen())
		{
			if(m_opmuset->Open ()==0)
			{
#ifdef MY_DEBUG_MSG
				AfxMessageBox("资料库连接失败!");
#else
#ifdef _DEBUG
	            TRACE("资料库连接失败!");
#endif
#endif
                szopmu=_T("");
				return FALSE;
			}
		}
		if(m_opmuset->IsBOF())
		{
			szopmu=_T("");
			return FALSE;
		}
		if(!m_opmuset->IsEOF())
		{
			m_opmuset->MoveFirst();
			szStationID=m_opmuset->m_station_id;
    		szStationID.TrimLeft();
	    	szStationID.TrimRight();
		}
		//读取数据
		while(!m_opmuset->IsEOF())
		{
//			if( (m_opmuset->m_test_time==test_time) &&
//				(m_opmuset->m_status>=1 && m_opmuset->m_status<=2))
//			{
				if(szRTU.IsEmpty())
				{
				   szRTU.Format("%s",m_opmuset->m_station_id);
				   szRTU.TrimLeft();
				   szRTU.TrimRight();
				}

				szRTUTmp.Format("%s",m_opmuset->m_station_id);
				szRTUTmp.TrimLeft();
				szRTUTmp.TrimRight();
				if(szRTUTmp==szRTU)
				{
					szTmp.Empty();
					szTmp.Format("(Byte:%d;State:%d)",
						m_opmuset->m_alarm_no,m_opmuset->m_status);
                    szResult+=szTmp;
				}				
//			}
 	    	m_opmuset->MoveNext();
		}
		m_opmuset->Close();
	}
	catch(CDBException* peDB)
	{
#ifdef MY_DEBUG_MSG
		AfxMessageBox(peDB->m_strError);
#endif	
		peDB->Delete();
		szopmu=_T("");
		return FALSE;
	}
	if(szResult.IsEmpty())
		return FALSE;
	szopmu.Format("OPMU:Warning::");
	szopmu+=szRTU;
	szopmu+=szResult;
	szopmu.Remove(' ');

	return TRUE;
}

BOOL CReadDB::GetOpmuWarn(CString &szStationID,CString& szopmu,long test_time,int nSMCodingType)//短信息编码类型,0-英文,1-中文
{
	CString szRTU,szRTUTmp,szTmp,szResult;

	szStationID=_T("");
    szopmu=_T("");

	szRTU=_T("");
	szRTUTmp=_T("");
	szTmp=_T("");
	szResult=_T("");
	//连接资料库
	try
	{
		//m_opmuset->m_strSort="test_time desc";
		CString tt;
		tt.Format("test_time=%ld AND status>=1 AND status<=2",test_time);
		m_opmuset->m_strFilter =tt;
		if(!m_opmuset->IsOpen())
		{
			if(m_opmuset->Open ()==0)
			{
#ifdef MY_DEBUG_MSG
				AfxMessageBox("资料库连接失败!");
#else
#ifdef _DEBUG
	            TRACE("资料库连接失败!");
#endif
#endif
                szopmu=_T("");

⌨️ 快捷键说明

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