亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rainproc.cpp

?? 用C++基于SQL SERVER使用存儲(chǔ)過(guò)程
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// RainProc.cpp: implementation of the RainProc class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "afxdisp.h"
#include "FileAccess.h"
#include "RainProc.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
extern "C" bool RunRainProc(char *strStation5,char *strStation8)
{
	RainProc rainproc(strStation5,strStation8);
	if(!rainproc.RainTelProcess()){
		return false;
	}
	return true;
}

RainProc::RainProc(CString strStation5,CString strStation8)
{
	m_strStation=strStation5;
	m_strLogicID=strStation8;
	m_strTempTel="";
	m_strTelText="";
	m_strAddiTelText="";
	m_bolStsChg=false;
	m_bolStsFlg=false;
	m_bolTelFlg=false;
	m_bolAddiTelFlg=false;
	m_bolAddiChgFlg=false;
	m_intTelCnt=0;
	m_intAddiCnt=1;
	int i=0;
	for(i=0;i<9;i++)m_dblAddiRain[i]=0;
}

RainProc::~RainProc()
{

}

//////////////////////////////////////////////////////////////////////
// 降水量拍報(bào)處理
//////////////////////////////////////////////////////////////////////
bool RainProc::RainTelProcess()
{
	int				intTelCnt=0;
	CTime			curTime;
	CString			strLastAddiTime;
	CString			strLastRainTime;
	double			dblLastAddiInfo=0;
	struct tm		tmLastAddiTime;
	double			dblRainDaySts=0;
	double			dblRainTenDaySts=0;
	double			dblRainMonthSts=0;

	FileAccess		errFile("c:\\RainErrLog.txt");

	errFile.m_strFileRecord.Format("\n%s :: RainTelProcess Begin%s|%s!\n",curTime.GetCurrentTime().Format("%Y-%m-%d %H:%M:%S"),m_strStation,m_strLogicID);
	errFile.writerecord();

	FileAccess logFile("c:\\RainTelLog.txt");
	logFile.m_strFileRecord.Format("\n%s :: %s|%s站啟動(dòng)降水量拍報(bào)處理:\n",curTime.GetCurrentTime().Format("%Y-%m-%d %H:%M:%S"),m_strStation,m_strLogicID);
	logFile.writerecord();

	m_strTelText="P "+m_strStation;

	////////////////////////////////////////////////////////////////////////////////////
	//建立數(shù)據(jù)庫(kù)鏈接
	////////////////////////////////////////////////////////////////////////////////////
	_ConnectionPtr m_connection;
	m_connection=DBCon.m_pCon;
	
	try{
		m_connection->BeginTrans();
	}
	catch(_com_error e){
		errFile.m_strFileRecord.Format("    BeginTrans Error::%s",e.ErrorMessage());
		errFile.writerecord();
		return false;
	}
	

	////////////////////////////////////////////////////////////////////////////////////
	//讀取拍報(bào)參數(shù)
	////////////////////////////////////////////////////////////////////////////////////
	try{
		Param.m_pCon=m_connection;
		Param.m_strSource=DBCon.m_strSource;
		Param.m_strSQL.Format("select * from TelParam where ParamID='RainTel' and Station='%s'",m_strStation);
		switch(Param.startbr()){
		case 1:{//如果沒有建立降水量拍報(bào)參數(shù)則取缺省值
			Param.m_strParamID="RainTel";
			Param.m_intTelLevel=1;
			Param.m_intTelInterval=24;
			Param.m_dblPeriodStandard=20;
			Param.m_bolAccuFlag=true;
			Param.m_dblAddiStandard=30;
			Param.m_intAddiInterval=3;
			break;
			   }
		case 0:break;
		case -1:{//如果讀取拍報(bào)參數(shù)出錯(cuò)則記錄錯(cuò)誤信息并退出
			errFile.m_strFileRecord="    Param::"+Param.m_strErrMsg;
			errFile.writerecord();
			return false;
				}
		}
	}
	catch(_com_error e){
		errFile.m_strFileRecord.Format("    ReadParam Error::%s",e.ErrorMessage());
		errFile.writerecord();
		return false;
	}

	////////////////////////////////////////////////////////////////////////////////////
	//讀取上次拍報(bào)狀態(tài)
	////////////////////////////////////////////////////////////////////////////////////
	try{
		RainSts.m_pCon=m_connection;
		RainSts.m_strSource=DBCon.m_strSource;
		RainSts.m_strSQL.Format("select * from RainStatus where Station='%s'",m_strStation);
		switch(RainSts.startbr()){
		case 0:{
			m_bolStsFlg=true;//如果讀取拍報(bào)狀態(tài)則置位標(biāo)志,后續(xù)處理將為更新狀態(tài)記錄
			m_tmLastRainTime=Cmc.StrToTime(RainSts.m_strLastRainTime);//轉(zhuǎn)換最后拍報(bào)時(shí)間為時(shí)間結(jié)構(gòu)類型,以便操作
			m_tmLastAddiTime=Cmc.StrToTime(RainSts.m_strLastAddiTime);//轉(zhuǎn)換最后暴雨加報(bào)時(shí)間為時(shí)間結(jié)構(gòu)類型,以便操作
			strLastAddiTime=RainSts.m_strLastAddiTime;//保存最后暴雨加報(bào)時(shí)間
			tmLastAddiTime=Cmc.StrToTime(strLastAddiTime);
			break;
			   }
		case 1:{
			m_bolStsFlg=false;//如果讀取拍報(bào)狀態(tài)則復(fù)位標(biāo)志,后續(xù)處理將為新增狀態(tài)記錄

			//如果沒有狀態(tài)記錄,則準(zhǔn)備初始數(shù)據(jù)。具體為讀取基礎(chǔ)數(shù)據(jù)的最早一筆的時(shí)間,即它前面的一個(gè)8時(shí)。
			RainDB.m_pCon=m_connection;
			RainDB.m_strSource=DBCon.m_strSource;
			RainDB.m_strSQL.Format("select * from F%s order by datatime",m_strLogicID);
			if(RainDB.startbr()<0){
				errFile.m_strFileRecord.Format("    RainDB1.startbr::%s\n",RainDB.m_strErrMsg);
				errFile.writerecord();
				return false;
			}
			m_tmLastRainTime=Cmc.StrToTime(RainDB.m_strInputTime);
			RainDB.m_pRst->Close();

			if(m_tmLastRainTime.tm_hour<=8)Cmc.TimeSubSpan(&m_tmLastRainTime,0,0,1,0,0,0);
			m_tmLastRainTime.tm_hour=8;
			m_tmLastRainTime.tm_min=0;
			m_tmLastRainTime.tm_sec=0;
			RainSts.m_strLastRainTime=Cmc.TimeToStr(m_tmLastRainTime);

			RainSts.m_strStation=m_strStation;
			
			RainSts.m_strLastAddiTime=RainSts.m_strLastRainTime;
			m_tmLastAddiTime=Cmc.StrToTime(RainSts.m_strLastAddiTime);
			strLastAddiTime=RainSts.m_strLastAddiTime;
			tmLastAddiTime=Cmc.StrToTime(strLastAddiTime);
			RainSts.m_dblLastRainInfo=0;
			RainSts.m_dblRainPeriodSts=0;
			RainSts.m_dblRainDaySts=0;
			RainSts.m_dblRainTenDaySts=0;
			RainSts.m_dblRainMonthSts=0;
			RainSts.m_dblLastAddiInfo=0;
			break;
			   }
		case -1:{//如果操作出錯(cuò)則保存錯(cuò)誤信息并退出
			errFile.m_strFileRecord="    RainSts::"+RainSts.m_strErrMsg;
			errFile.writerecord();
			return false;
				}
		}
	}
	catch(_com_error e){
		errFile.m_strFileRecord.Format("    OpenRainSts Error::%s",e.ErrorMessage());
		errFile.writerecord();
		return false;
	}

	//保存上次拍報(bào)狀態(tài)
	strLastRainTime=RainSts.m_strLastRainTime;
	dblRainDaySts=RainSts.m_dblRainDaySts;
	dblRainTenDaySts=RainSts.m_dblRainTenDaySts;
	dblRainMonthSts=RainSts.m_dblRainMonthSts;
	

	////////////////////////////////////////////////////////////////////////////////////
	//創(chuàng)建報(bào)文數(shù)據(jù)表的數(shù)據(jù)集
	////////////////////////////////////////////////////////////////////////////////////
	try{
		TelDB.m_pCon=m_connection;
		TelDB.m_strSource=DBCon.m_strSource;
		TelDB.m_strSQL.Format("select * from tel_source");
		if(TelDB.startbr()<0){
			errFile.m_strFileRecord.Format("    TelDB.startbr::%s\n",TelDB.m_strErrMsg);
			errFile.writerecord();
			return false;
		}
	}
	catch(_com_error e){
		errFile.m_strFileRecord.Format("    OpenTelDB Error::%s\n",e.ErrorMessage());
		errFile.writerecord();
		return false;
	}

	////////////////////////////////////////////////////////////////////////////////////
	//掃描自上次拍報(bào)以來(lái)新產(chǎn)生的且未拍報(bào)的降水測(cè)量數(shù)據(jù)
	////////////////////////////////////////////////////////////////////////////////////
	try{
		RainDB.m_pCon=m_connection;
		RainDB.m_strSource=DBCon.m_strSource;
		RainDB.m_strSQL.Format("select * from F%s where datatime>'%s' order by datatime",m_strLogicID,RainSts.m_strLastRainTime);
		if(RainDB.startbr()<0){
			errFile.m_strFileRecord.Format("    RainDB.startbr::%s\n",RainDB.m_strErrMsg);
			errFile.writerecord();
			return false;
		}
	}
	catch(_com_error e){
		errFile.m_strFileRecord.Format("    OpenRainDB Error::%s\n",e.ErrorMessage());
		errFile.writerecord();
		return false;
	}

	bool			bolDailyFlg=false;
	int				i=0;

	//最后拍報(bào)時(shí)間向前推移:
	//    最后拍報(bào)時(shí)間向前推移一個(gè)拍報(bào)間隔;
	//    最后加報(bào)時(shí)間向前推移一小時(shí)
	Cmc.TimeAddSpan(&m_tmLastRainTime,0,0,0,Param.m_intTelInterval,0,0);
	RainSts.m_strLastRainTime=Cmc.TimeToStr(m_tmLastRainTime);
	Cmc.TimeAddSpan(&m_tmLastAddiTime,0,0,0,1,0,0);
	RainSts.m_strLastAddiTime=Cmc.TimeToStr(m_tmLastAddiTime);

	//獲取上次暴雨加報(bào)狀態(tài),以進(jìn)行后續(xù)加報(bào)處理
	Cmc.m_strInputTime=RainSts.m_strLastAddiTime;
	Cmc.TimeValProc();
	m_intAddiCnt=(int)(Cmc.m_fltInterval+0.99)%Param.m_intAddiInterval;
	if(m_intAddiCnt<=0)m_intAddiCnt=Param.m_intAddiInterval;
	if(m_intAddiCnt>0)m_dblAddiRain[m_intAddiCnt-1]=RainSts.m_dblLastAddiInfo;
	
	while(!RainDB.m_pRst->adoEOF){
		Cmc.m_strInputTime=RainDB.m_strInputTime;
		m_tmInputTime=Cmc.StrToTime(RainDB.m_strInputTime);
		if(Cmc.TimeCompare(m_tmInputTime,m_tmLastAddiTime)<=0){//當(dāng)采集時(shí)間小于等于最后暴雨加報(bào)時(shí)間則累計(jì)降水量
			if(Cmc.TimeCompare(m_tmInputTime,tmLastAddiTime)>0){
				m_dblAddiRain[m_intAddiCnt]+=RainDB.m_dblInputVal;//暴雨累計(jì)
				m_dblHourRainSts=m_dblAddiRain[m_intAddiCnt];
			}

			if(Cmc.TimeCompare(m_tmInputTime,m_tmLastRainTime)<=0){
				RainSts.m_dblLastRainInfo+=RainDB.m_dblInputVal;//本時(shí)段累計(jì)
				RainSts.m_dblRainPeriodSts+=RainDB.m_dblInputVal;//跨時(shí)段累計(jì)
				RainSts.m_dblRainDaySts+=RainDB.m_dblInputVal;//日累計(jì)
				RainSts.m_dblRainTenDaySts+=RainDB.m_dblInputVal;//旬累計(jì)
				RainSts.m_dblRainMonthSts+=RainDB.m_dblInputVal;//月累計(jì)
				if(RainDB.readnext()<0){//讀取測(cè)量數(shù)據(jù)下一筆
					errFile.m_strFileRecord.Format("    RainDB.readnext::%s\n",RainDB.m_strErrMsg);
					errFile.writerecord();
					return false;
				}
			}

			if(Cmc.TimeCompare(m_tmInputTime,m_tmLastAddiTime)<0&&Cmc.TimeCompare(m_tmInputTime,m_tmLastRainTime)<0)continue;
		}
		if(Cmc.TimeCompare(m_tmInputTime,m_tmLastAddiTime)>=0&&Cmc.TimeCompare(m_tmLastAddiTime,m_tmLastRainTime)<=0){
			m_dblHourRainSts=m_dblAddiRain[m_intAddiCnt];
			if(m_intAddiCnt>=1&&m_dblAddiRain[m_intAddiCnt]>=(Param.m_dblAddiStandard1-0.001)){//???double比較是否有特殊規(guī)則,不然為何必須加上0.001???
				RainSts.m_dblLastAddiInfo=0;
				for(i=1;i<=m_intAddiCnt;i++)RainSts.m_dblLastAddiInfo+=m_dblAddiRain[i];
				if(!AddiTelPrepare(m_tmLastAddiTime,m_dblAddiRain[m_intAddiCnt],Param.m_intAddiInterval1))return false;//降水達(dá)到暴雨加報(bào)標(biāo)準(zhǔn)則準(zhǔn)備暴雨加報(bào)
			}

			if(m_intAddiCnt==Param.m_intAddiInterval){//當(dāng)小時(shí)累計(jì)到了三小時(shí)則判斷三小時(shí)累計(jì)雨量是否超過(guò)暴雨加報(bào)標(biāo)準(zhǔn),如超過(guò)則進(jìn)行加報(bào)
				RainSts.m_dblLastAddiInfo=0;
				for(i=1;i<=m_intAddiCnt;i++)RainSts.m_dblLastAddiInfo+=m_dblAddiRain[i];
				if(RainSts.m_dblLastAddiInfo>=Param.m_dblAddiStandard){
					if(!AddiTelPrepare(m_tmLastAddiTime,RainSts.m_dblLastAddiInfo,Param.m_intAddiInterval))return false;//降水達(dá)到暴雨加報(bào)標(biāo)準(zhǔn)則準(zhǔn)備暴雨加報(bào)
				}
				InitAddiRain();
				RainSts.m_dblLastAddiInfo=0;
			}
			else m_intAddiCnt++;

			if(m_bolAddiTelFlg){//如果有暴雨加報(bào)則更新上次加報(bào)時(shí)間
				strLastAddiTime=RainSts.m_strLastAddiTime;
				tmLastAddiTime=Cmc.StrToTime(strLastAddiTime);
			}

			//strLastAddiTime=RainSts.m_strLastAddiTime;//保存舊的最后暴雨加報(bào)時(shí)間
			Cmc.TimeAddSpan(&m_tmLastAddiTime,0,0,0,1,0,0);//最后暴雨加報(bào)時(shí)間向后推移一小時(shí)
			RainSts.m_strLastAddiTime=Cmc.TimeToStr(m_tmLastAddiTime);
			if(Cmc.TimeCompare(m_tmLastAddiTime,m_tmLastRainTime)<=0){
				if(m_bolAddiTelFlg){//如未進(jìn)行時(shí)段拍報(bào)且有暴雨加報(bào)生成則將其新增至報(bào)文數(shù)據(jù)庫(kù)表中
					TelDB.m_strStation=m_strStation;
					TelDB.m_strTelText=m_strAddiTelText+" NN";
					TelDB.m_bitDepartFlag=false;
					TelDB.m_intDataSource=1;
					//TelDB.m_strOneTime=RainSts.m_strLastAddiTime;
					if(TelDB.insertrec()==0){
						intTelCnt++;
						logFile.m_strFileRecord.Format("  生成報(bào)文:%s\n",TelDB.m_strTelText);
						logFile.writerecord();
					}
					else{
						errFile.m_strFileRecord.Format("    TelDB.insertrec addi::%s\n",TelDB.m_strErrMsg);
						errFile.writerecord();
						return false;
					}
					m_strAddiTelText="";
					m_bolAddiTelFlg=false;
				}
				continue;
			}
		}

		//當(dāng)當(dāng)前測(cè)量數(shù)據(jù)的采集時(shí)間達(dá)到時(shí)段拍報(bào)時(shí)間則進(jìn)行時(shí)段拍報(bào)
		if(Cmc.TimeCompare(m_tmInputTime,m_tmLastRainTime)>=0){
			if(RainSts.m_dblLastRainInfo>=1){//只有本時(shí)段累計(jì)降水量達(dá)到1mm時(shí)才準(zhǔn)備報(bào)文
				TelPrepare();
			}

			//判斷是否進(jìn)行時(shí)段拍報(bào):

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天色综合天天| 亚洲免费观看视频| 男女性色大片免费观看一区二区| 欧美日韩久久久| 欧美aa在线视频| 亚洲精品一区二区三区影院| 国产精品白丝av| 1000精品久久久久久久久| 91老师国产黑色丝袜在线| 亚洲男人的天堂一区二区| 最新日韩av在线| 色婷婷国产精品久久包臀 | 首页国产欧美日韩丝袜| 欧美日韩一二区| 麻豆成人免费电影| 欧美激情一区在线观看| 色中色一区二区| 日韩激情视频网站| 久久久久久久久久久电影| bt欧美亚洲午夜电影天堂| 午夜电影久久久| 亚洲国产电影在线观看| 欧美在线免费观看亚洲| 久久精品国产免费看久久精品| 国产午夜亚洲精品羞羞网站| 欧洲另类一二三四区| 国产自产2019最新不卡| 亚洲欧美一区二区三区孕妇| 日韩一区二区三区免费观看| 不卡的av中国片| 琪琪一区二区三区| **欧美大码日韩| 精品国产乱码久久久久久夜甘婷婷| 成人黄色在线看| 青椒成人免费视频| 亚洲美腿欧美偷拍| 亚洲精品一区二区三区四区高清 | 欧美刺激午夜性久久久久久久| 国产成人午夜片在线观看高清观看| 亚洲精品免费看| 2022国产精品视频| 56国语精品自产拍在线观看| 成人手机电影网| 极品少妇xxxx精品少妇| 成人综合激情网| 日本在线不卡视频| 亚洲精品国产视频| 中文字幕国产一区| 欧美草草影院在线视频| 欧美日韩精品一二三区| 97精品久久久久中文字幕| 久草精品在线观看| 日产国产欧美视频一区精品| 亚洲免费观看高清完整版在线观看| 久久综合久久综合亚洲| 在线电影国产精品| 欧美日韩综合在线| 色婷婷综合久色| 99国产麻豆精品| 成人一级片在线观看| 国产在线一区观看| 麻豆精品国产传媒mv男同| 亚洲123区在线观看| 亚洲综合免费观看高清完整版| 国产精品美女视频| 国产欧美日韩另类视频免费观看| 亚洲精品一区二区三区福利 | 亚洲欧美日韩中文播放| 国产目拍亚洲精品99久久精品| 精品久久国产老人久久综合| 91精品免费在线观看| 欧美日韩aaaaa| 欧美日韩三级一区| 欧美精品在欧美一区二区少妇| 欧美性猛交一区二区三区精品 | 欧美网站一区二区| 国产日韩一级二级三级| 国产亚洲欧洲997久久综合 | 欧美日韩国产免费| 在线观看日韩av先锋影音电影院| 一本色道久久综合亚洲精品按摩| 99re这里只有精品首页| 91免费精品国自产拍在线不卡| 色综合色综合色综合色综合色综合| av在线不卡观看免费观看| 99精品久久99久久久久| 色综合网色综合| 欧美三级午夜理伦三级中视频| 欧美精品高清视频| 日韩欧美一二三四区| 久久久国产精品不卡| 国产精品久久久久久久久果冻传媒| 日韩毛片高清在线播放| 亚洲在线一区二区三区| 奇米影视7777精品一区二区| 韩国午夜理伦三级不卡影院| 粉嫩高潮美女一区二区三区| 99国产欧美另类久久久精品| 欧美系列亚洲系列| 欧美大白屁股肥臀xxxxxx| 国产亚洲午夜高清国产拍精品 | 亚洲精品网站在线观看| 午夜欧美视频在线观看| 欧美色男人天堂| 日韩你懂的在线播放| 国产欧美一区二区在线| 亚洲精品乱码久久久久久黑人| 日韩经典一区二区| 国产精品18久久久久| 色综合久久久久综合体桃花网| 欧美精品777| 久久精品一区蜜桃臀影院| 亚洲猫色日本管| 日本麻豆一区二区三区视频| 国产成人自拍网| 欧美日韩另类一区| 国产午夜精品一区二区三区四区| 亚洲精品中文字幕乱码三区| 久久精品国产第一区二区三区| 成人免费观看视频| 欧美一区二区视频在线观看2022| 国产欧美日韩视频一区二区 | 国产精品久久三区| 日韩经典一区二区| av激情综合网| 日韩视频免费观看高清在线视频| 中文字幕欧美一区| 精品一区二区三区影院在线午夜| 91看片淫黄大片一级在线观看| 精品久久久久香蕉网| 亚洲一区二区在线视频| 国产成人免费网站| 91精品欧美一区二区三区综合在| 亚洲色图在线视频| 国产精品一区三区| 欧美一级一区二区| 一区二区三区精品在线观看| 风间由美一区二区三区在线观看| 欧美一区二区在线观看| 一区二区三区高清| 成人高清免费在线播放| 日韩精品一区二区三区swag | 日韩av成人高清| 色八戒一区二区三区| 国产日产欧美一区二区三区| 另类小说综合欧美亚洲| 欧美三级在线看| 一片黄亚洲嫩模| a美女胸又www黄视频久久| 国产午夜精品久久久久久免费视| 蜜桃一区二区三区在线| 欧美精品一二三四| 亚洲综合色噜噜狠狠| 色欧美乱欧美15图片| 亚洲欧美怡红院| 国产suv精品一区二区6| 久久久国产午夜精品| 九九热在线视频观看这里只有精品| 欧美日韩免费高清一区色橹橹 | 亚洲高清三级视频| 91成人免费在线视频| 18成人在线视频| 91免费在线看| 亚洲精品乱码久久久久久| 色综合久久久久久久久久久| 自拍偷拍国产精品| 色综合久久久久综合| 亚洲三级在线观看| 91福利小视频| 亚洲aⅴ怡春院| 日韩一区二区三区视频| 久久国产夜色精品鲁鲁99| 日韩色视频在线观看| 久久se精品一区精品二区| 欧美不卡视频一区| 国产一区二区电影| 中文成人av在线| 97精品久久久久中文字幕| 一区二区三区在线免费播放| 欧美三级一区二区| 日本特黄久久久高潮| 欧美sm极限捆绑bd| 国产成人在线色| 中文字幕字幕中文在线中不卡视频| 91免费观看视频| 日韩精品亚洲专区| 久久众筹精品私拍模特| 成人高清视频在线观看| 亚洲免费在线观看视频| 欧美色中文字幕| 另类小说综合欧美亚洲| 国产精品女上位| 欧美探花视频资源| 麻豆国产欧美一区二区三区| 国产午夜亚洲精品午夜鲁丝片 | 欧洲精品一区二区三区在线观看| 一区二区三区欧美| 欧美mv日韩mv| 99精品视频免费在线观看| 色综合天天在线|