📄 readdb.cpp
字号:
// 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 + -