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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? configinfo.cpp

?? 數據庫開發
?? CPP
字號:
#include "stdafx.h"
#include "ConfigInfo.h"
#include "DataBind.h"
#include "SQLExec.h"
#include "..\reg\registry.h"


CConfigInfo::CConfigInfo()
{
	m_dtToday = CTime::GetCurrentTime();
	m_nYear = m_dtToday.GetYear();
	m_nMonth = m_dtToday.GetMonth();
}

CConfigInfo::~CConfigInfo()
{
	ExitInstance();
}

BOOL CConfigInfo::ADOExec(_RecordsetPtr &ADOSet, _variant_t &strSQL)
{
	if ( ADOSet->State == adStateOpen)	ADOSet->Close();
	try
	{
       	ADOSet->Open(strSQL, m_ADOConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);
	    return TRUE;
	}
	catch(_com_error &e)
	{
       CString err;
	   err.Format("ADO Error: %s",(char*)e.Description());
	   AfxMessageBox(err);
	   return FALSE;
	}
}

BOOL CConfigInfo::InitInstance()
{
	// Init Login Count
//	m_nLoginCount = 0;
	CString sz;
	sz = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = ";
	sz = sz + m_sPath + "\\AirMonitor.mdb";
	sz = sz + " ;Persist Security Info=False";
	m_bstrFileDSN = _T(sz);

	// 創建ADO連接對象
	if( FAILED(::CoInitialize(NULL)) ) 
	{
	    AfxMessageBox("ADO Init failed");
		return FALSE;
	}
	try
	{
		m_ADOConn.CreateInstance(__uuidof(Connection));
		m_ADOConn->ConnectionString = m_bstrFileDSN;	
		m_ADOConn->Open(m_bstrFileDSN,"","", adConnectUnspecified);
	}
	// 捕捉例外
	catch(_com_error &e)
	{
		CString err;
		err.Format("%s", (char*)(e.Description()) );
		AfxMessageBox(err);
		return FALSE;
	}
	catch(...)
	{
		AfxMessageBox("Unknown Error...");
		return FALSE;
	}
	
	// 初始化ADO記錄集
	m_pADOSet.CreateInstance(__uuidof(Recordset));	
	InitDateFromDB();
	return TRUE;
}

BOOL CConfigInfo::ExitInstance()
{
	//釋放ADO連接對象 
	if( adStateOpen == m_ADOConn->State )	m_ADOConn->Close();
	m_ADOConn.Release();
    
	// 釋放ADO記錄集
	if(adStateOpen==m_pADOSet->State)	m_pADOSet->Close();
	m_pADOSet.Release();

	return TRUE;
}

CSampleData::CSampleData()
{
	m_nCount = 0;
	m_nCache1 = 0;
	m_nCache2 = 0;
	memset(m_nTime, 0, POINT_PER_DAY * sizeof(int));	//保存記錄對應時間點(分鐘序號以及有效庫存項目數)
	for(int i = 0; i < MAX_CHANNEL1_NUM + MAX_CHANNEL2_NUM; i++)
		memset(m_fData[i], 0, POINT_PER_DAY * sizeof(float));	//每分鐘采集一個點
	for(i = 0; i < MAX_CHANNEL1_NUM; i++)
		memset(m_fCache1[i], 0, MAX_SAMPLE_CACHE1 * sizeof(float));	
	
	for(i = 0; i < MAX_CHANNEL2_NUM; i++)
		memset(m_fCache2[i], 0, MAX_SAMPLE_CACHE2 * sizeof(float));	
	
}
CSampleData::~CSampleData()
{
}

BOOL CSampleData::GetCurData1(float* fData)
{
	if(m_nCache1 == 0)
	{
		if(m_nCount == 0)
		{
			memset(fData, 0, MAX_CHANNEL1_NUM * sizeof(float)); 
			return FALSE;
		}else{
			for(int i = 0; i < MAX_CHANNEL1_NUM; i++)
				fData[i] = m_fData[i][m_nCount - 1];
			return TRUE;
		}		
	}
	for(int i = 0; i < MAX_CHANNEL1_NUM; i++)
		fData[i] = m_fCache1[i][m_nCache1 - 1];
	return TRUE;
}

BOOL CSampleData::GetCurData2(float* fData)
{
	if(m_nCache2 == 0)
	{
		if(m_nCount == 0)
		{
			memset(fData, 0, MAX_CHANNEL2_NUM * sizeof(float)); 
			return FALSE;
		}else{
			for(int i = 0; i < MAX_CHANNEL2_NUM; i++)
				fData[i] = m_fData[MAX_CHANNEL1_NUM + i][m_nCount - 1];
			return TRUE;
		}		
	}
	for(int i = 0; i < MAX_CHANNEL2_NUM; i++)
		fData[i] = m_fCache2[i][m_nCache2 - 1];
	return TRUE;
}

int	CSampleData::UpdateSample(int nMinPerDay)
{
	if((m_nCache1 == 0) ||(m_nCache2 == 0))
		return 0;
	m_nTime[m_nCount] = nMinPerDay;
	for(int i = 0; i < MAX_CHANNEL1_NUM; i++)
	{
		m_fData[i][m_nCount] = 0;
		for(int j = 0; j < m_nCache1; j++)
			m_fData[i][m_nCount] = m_fData[i][m_nCount] + m_fCache1[i][j];
		m_fData[i][m_nCount] = m_fData[i][m_nCount] / m_nCache1;
	}
	for(i = 0; i < MAX_CHANNEL2_NUM; i++)
	{
		m_fData[MAX_CHANNEL1_NUM + i][m_nCount] = 0;
		for(int j = 0; j < m_nCache2; j++)
			m_fData[MAX_CHANNEL1_NUM + i][m_nCount] = m_fData[MAX_CHANNEL1_NUM + i][m_nCount] + m_fCache2[i][j];
		m_fData[MAX_CHANNEL1_NUM + i][m_nCount] = m_fData[MAX_CHANNEL1_NUM + i][m_nCount] / m_nCache2;
	}
	m_nCount++;
	return m_nCount;
}

void	CSampleData::ClearCache(int nType)
{
	if(nType == 1)
		m_nCache1 = 0;
	if(nType == 2)
		m_nCache2 = 0;
}

void CSampleData::NewData1Coming(float* fNewData, CChannelInfo* pChanConfig)
{
	for(int i = 0; i < MAX_CHANNEL1_NUM; i++)
		m_bOverWarn[i] = pChanConfig->SjToLl(i + 1, fNewData[i], m_fCache1[i][m_nCache1]);

	m_nCache1++;
	if(m_nCache1 >= MAX_SAMPLE_CACHE1)
		m_nCache1 = 0;
	return;
}

void CSampleData::NewData2Coming(float* fNewData, CChannelInfo* pChanConfig)
{
	for(int i = 0; i < MAX_CHANNEL2_NUM; i++)
		m_bOverWarn[i + MAX_CHANNEL1_NUM] = pChanConfig->SjToLl(i + 1 + MAX_CHANNEL1_NUM, fNewData[i], m_fCache2[i + MAX_CHANNEL1_NUM][m_nCache2]);
		//m_fCache2[i + MAX_CHANNEL1_NUM][m_nCache2] = fNewData[i];

	m_nCache2++;
	if(m_nCache2 >= MAX_SAMPLE_CACHE2)
		m_nCache2 = 0;
	return;
}
BOOL CSampleData::LoadFrom10SecDB()
{
	return TRUE;
}

BOOL CSampleData::SaveTo10SecDB()
{
	return TRUE;
}

BOOL CSampleData::LoadFromMinDB()
{
	return TRUE;
}

BOOL CSampleData::SaveToMinDB()
{
	return TRUE;
}

BOOL CSampleData::LoadFrom5MinDB()
{
	return TRUE;
}
BOOL CSampleData::SaveTo5MinDB()
{
	return TRUE;
}
BOOL CSampleData::LoadFrom15MinDB()
{
	return TRUE;
}
BOOL CSampleData::SaveTo15MinDB()
{
	return TRUE;
}
BOOL CSampleData::LoadFromDayDB()
{
	return TRUE;
}
BOOL CSampleData::SaveToDayDB()
{
	return TRUE;
}

BOOL CConfigInfo::InitDateFromDB()
{
	_RecordsetPtr pRst = NULL;
	try
	{
		CString strsql;
		_bstr_t strSQL;
		
		pRst.CreateInstance(__uuidof(Recordset));
		IADORecordBindingPtr   picRs(pRst);
		
		//DBPlace
		strsql.Format("SELECT * FROM ComDevice");	
		strSQL = strsql;

		CDBDevice rs;
		ADOExec(pRst, _variant_t(strSQL));
		TESTHR(picRs->BindToRecordset(&rs));
		
		int i;
		//adam4117
		m_Adam4117.m_nID = rs.m_nID;
		m_Adam4117.m_nBt = rs.m_nBt;
		m_Adam4117.m_sCom.Format("%s", rs.m_sCom);
		m_Adam4117.m_nMaxSec = rs.m_nMaxSec;
		for(i = 0; i < 10; i++)
			m_Adam4117.m_sCommand[i].Format("%s", rs.m_sCommand[i]); 
		pRst->MoveNext();
		
		//CCD
		m_CCD.m_nID = rs.m_nID;
		m_CCD.m_nBt = rs.m_nBt;
		m_CCD.m_sCom.Format("%s", rs.m_sCom);
		m_CCD.m_nMaxSec = rs.m_nMaxSec;
		for(i = 0; i < 10; i++)
			m_CCD.m_sCommand[i].Format("%s", rs.m_sCommand[i]); 
		pRst->MoveNext();

		//CMotor
		m_Motor.m_nID = rs.m_nID;
		m_Motor.m_nBt = rs.m_nBt;
		m_Motor.m_sCom.Format("%s", rs.m_sCom);
		m_Motor.m_nMaxSec = rs.m_nMaxSec;
		for(i = 0; i < 10; i++)
			m_Motor.m_sCommand[i].Format("%s", rs.m_sCommand[i]); 
		pRst->MoveNext();

		//CGprs
		m_Gprs.m_nID = rs.m_nID;
		m_Gprs.m_nBt = rs.m_nBt;
		m_Gprs.m_sCom.Format("%s", rs.m_sCom);
		m_Gprs.m_nMaxSec = rs.m_nMaxSec;
		for(i = 0; i < 10; i++)
			m_Gprs.m_sCommand[i].Format("%s", rs.m_sCommand[i]); 
		
		pRst->Close();
		return TRUE;
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.ErrorMessage());
		PrintComError(e);
		return FALSE;
    } 
}

void CConfigInfo::SaveEventLogToDB(CString sTime, CString sEvent)
{
	//sunset interface: 將m_Var[]中數據保存至數據庫中
	CString sUser, sTable;
	sTable.Format("%sEventLog", m_dtToday.Format("%Y%m%d"));
	CheckToSureTableExist(sTable, "TemplateLog");
	sUser = m_User.m_sUserName;
	CString sql;
	sql.Format("INSERT INTO "+sTable+" (sTime, sEvent, sUser)\
	values ('"+sTime+"', '"+sEvent+"', '"+sUser+"') ");
	ExecSQL(sql);
}

void CConfigInfo::SaveWarnLogToDB(CString sTime, CString sWarn)
{
	//sunset interface: 將m_Var[]中數據保存至數據庫中
	CString sUser, sTable;
	sUser = m_User.m_sUserName;//_T("默認");
	sTable.Format("%sWarnLog", m_dtToday.Format("%Y%m%d"));
	CheckToSureTableExist(sTable, "TemplateLog");
	CString sql;
	sql.Format("INSERT INTO "+sTable+" (sTime, sWarn, sUser)\
	values ('"+sTime+"', '"+sWarn+"', '"+sUser+"') ");
	ExecSQL(sql);
}

void CConfigInfo::SaveSampleDataToDB()
{
//sunset interface: 將m_Var[]中數據保存至數據庫中
/*	CString sTime, sVal[24];
	CTime dt = CTime::GetCurrentTime();
	sTime = dt.Format("%H:%M:%S");
	for(int i = 0; i < 24; i++)
	{
		if((m_Var[i].nType == 1) ||
			(m_Var[i].nType == 2))
			sVal[i].Format(_T("%.2f"), m_Var[i].fVal);
		if((m_Var[i].nType == 3) ||
			(m_Var[i].nType == 4)){
			if(m_Var[i].bVal)
				sVal[i] = _T("1");
			else
				sVal[i] = _T("0");
		}
	}

	CString sql;
	sql.Format("INSERT INTO SampleData(sTime, Var01, Var02, Var03, Var04,\
	Var05, Var06, Var07, Var08, Var09, Var10, Var11, Var12, Var13, Var14, Var15,\
	Var16, Var17, Var18, Var19, Var20, Var21, Var22, Var23, Var24)\
	values ('"+sTime+"', '"+sVal[0]+"', '"+sVal[1]+"', '"+sVal[2]+"','"+sVal[3]+"','"+sVal[4]\
	+"','"+sVal[5]+"','"+sVal[6]+"','"+sVal[7]+"','"+sVal[8]+"','"+sVal[9]+"','"+sVal[10]+"','"+sVal[11]\
	+"','"+sVal[12]+"','"+sVal[13]+"','"+sVal[14]+"','"+sVal[15]+"','"+sVal[16]+"','"+sVal[17]\
	+"','"+sVal[18]+"','"+sVal[19]+"','"+sVal[20]+"','"+sVal[21]+"','"+sVal[22]+"','"+sVal[23]+"') ");
	ExecSQL(sql);
*/
}

BOOL CConfigInfo::CheckToSureTableExist(CString sTable, CString sTemplate)
{
	if(!CheckIfTableExist(sTable))
	{
	 	return CreateNewTable(sTable, sTemplate);
	}
	
	return TRUE;
}
BOOL CConfigInfo::CreateNewTable(CString sTable, CString sTemplate)
{
	CString strSQL;
	strSQL.Format("select * into %s from %s where 1<>1", sTable, sTemplate); 

	_RecordsetPtr pRst = NULL;
	TESTHR(pRst.CreateInstance(__uuidof(Recordset)));
	if(!ADOExec(pRst, _variant_t(strSQL)))
		return FALSE;
	return TRUE;
}

BOOL CConfigInfo::CheckIfTableExist(CString sTable)
{
	HRESULT     hr   =   S_OK;   
    IADORecordBinding       *picRs   =   NULL;   
    _RecordsetPtr   pRstSchema("ADODB.Recordset");   

	CString   strTableType, strTableName, strFlag;   
    try{
		pRstSchema->QueryInterface(__uuidof(IADORecordBinding), (LPVOID*)&picRs);   
		pRstSchema=m_ADOConn->OpenSchema(adSchemaTables);//枚舉表的名稱處理   
		int i = 0;
		while(!(pRstSchema->adoEOF)){   
			
			_bstr_t   table_name   =   pRstSchema->Fields->GetItem("TABLE_NAME")->Value;//獲取表的名稱   
			_bstr_t   table_type   =   pRstSchema->Fields->GetItem("TABLE_TYPE")->Value;//獲取表的類型   
			strTableType.Format("%s",(LPCSTR)   table_type);
			if(!lstrcmp(strTableType,_T("TABLE")))   
			{   
				//m_cbTeam.AddString((LPCSTR)table_name);//添加表的名稱   
				strTableName.Format("%s",(LPCSTR)table_name);
				if(!strTableName.CompareNoCase(sTable))   
				{
					pRstSchema->Close();  
					return TRUE;
				}
			}   
			pRstSchema->MoveNext();   
		}   
		//   Clean   up   objects   before   exit.   
		pRstSchema->Close();   
    }   
    catch(_com_error &e)
	{
		CString err;
		err.Format("%s", (char*)(e.Description()) );
		AfxMessageBox(err);
		return FALSE;
	}
	return FALSE;
}
int CConfigInfo::StringToInt(CString s)
{
	int nReturn = 0;
	char cc[10];
	wsprintf(cc, "%s", s);
	nReturn = atoi(cc);
	return nReturn;
}
float CConfigInfo::StringToFloat(CString s)
{
	float fReturn = 0;
	char cc[10];
	wsprintf(cc, "%s", s);
	fReturn = (float)atof(cc);
	return fReturn;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩精品视频一区| 欧美美女一区二区| 成人欧美一区二区三区小说| 国产一区二区免费看| 国产欧美日韩在线观看| 成人免费视频视频在线观看免费| 国产精品乱人伦一区二区| 色婷婷综合久久久久中文| 亚洲午夜激情av| 日韩精品综合一本久道在线视频| 国产一区二区美女诱惑| **欧美大码日韩| 欧美日韩你懂的| 成人午夜伦理影院| 亚洲女人****多毛耸耸8| 欧美日韩成人一区二区| 精品在线视频一区| 亚洲欧洲三级电影| 6080yy午夜一二三区久久| 国产一区二区三区在线观看精品| 国产精品成人一区二区艾草 | 欧美日韩日日夜夜| 国产一区二区三区蝌蚪| 一区二区三区中文字幕在线观看| 日韩欧美一区在线观看| 99在线热播精品免费| 日韩影视精彩在线| 国产精品乱码一区二区三区软件 | 国产精品美女www爽爽爽| 欧美精品乱码久久久久久按摩| 国产一区二区三区最好精华液| 亚洲天天做日日做天天谢日日欢| 777亚洲妇女| 色综合色综合色综合| 久久99九九99精品| 亚洲欧美一区二区三区久本道91| 日韩午夜激情电影| 欧美午夜一区二区三区| 国产精品18久久久久| 日韩高清不卡一区二区三区| 中文字幕不卡在线观看| 欧美一区二区三区在线观看视频| 福利一区二区在线| 免费在线观看日韩欧美| 亚洲免费色视频| 欧美精彩视频一区二区三区| 日韩一区二区影院| 色爱区综合激月婷婷| 成人做爰69片免费看网站| 免播放器亚洲一区| 亚洲国产成人va在线观看天堂| 国产精品亲子伦对白| 久久久五月婷婷| 日韩精品中文字幕一区二区三区 | 国产91在线观看丝袜| 日韩精品久久理论片| 一区二区三区四区不卡视频 | 欧美一级二级三级乱码| 成人av在线网| 国产精品538一区二区在线| 久久国内精品视频| 日韩精品福利网| 石原莉奈一区二区三区在线观看| 亚洲六月丁香色婷婷综合久久 | 在线看一区二区| 91免费小视频| 91美女片黄在线| 色噜噜狠狠一区二区三区果冻| 成人少妇影院yyyy| 99久久精品免费| 99久久精品国产麻豆演员表| av亚洲精华国产精华精华 | 亚洲欧美日韩小说| 综合分类小说区另类春色亚洲小说欧美| 久久亚区不卡日本| 久久视频一区二区| 久久中文字幕电影| 国产亚洲成年网址在线观看| 国产欧美视频在线观看| 国产精品色婷婷| 亚洲欧美日本在线| 亚洲一区在线观看免费| 亚洲成人动漫av| 麻豆一区二区在线| 国产乱色国产精品免费视频| 成人一区二区三区视频在线观看| 成人免费福利片| 在线免费亚洲电影| 欧美性猛交xxxxxxxx| 欧美一区二区视频在线观看| 欧美一级片免费看| 国产亚洲欧美色| 综合分类小说区另类春色亚洲小说欧美 | 久久综合久久综合亚洲| 国产日韩欧美电影| 一区二区欧美在线观看| 丝袜亚洲精品中文字幕一区| 国产在线不卡一区| 色综合夜色一区| 在线播放一区二区三区| www一区二区| 亚洲男同性恋视频| 日韩电影一区二区三区| 国产aⅴ综合色| 欧日韩精品视频| 亚洲精品高清在线观看| 琪琪一区二区三区| 成人免费黄色在线| 91麻豆精品国产91久久久更新时间 | 精品国产精品网麻豆系列| 国产精品女人毛片| 婷婷一区二区三区| 成人免费视频视频| 91精品国产福利在线观看| 久久久国际精品| 亚洲成人在线网站| 国产91对白在线观看九色| 欧美色欧美亚洲另类二区| 久久久久久久久久久电影| 亚洲美女免费视频| 国产在线不卡一卡二卡三卡四卡| 色综合天天综合网天天狠天天 | 粉嫩一区二区三区性色av| 欧日韩精品视频| 国产日韩成人精品| 丝袜美腿高跟呻吟高潮一区| 成人理论电影网| 欧美一级二级三级蜜桃| 亚洲美女一区二区三区| 国精产品一区一区三区mba桃花| 色哟哟欧美精品| 精品国产免费视频| 午夜电影一区二区| aa级大片欧美| 久久精品视频在线免费观看| 亚洲午夜三级在线| 高清国产一区二区三区| 91精品婷婷国产综合久久性色| 中文字幕亚洲视频| 国产馆精品极品| 中文字幕一区二区不卡| 精品一区中文字幕| 日韩一区二区三区电影| 亚洲欧美偷拍三级| 99国产精品视频免费观看| 国产亚洲自拍一区| 国产在线日韩欧美| 日韩欧美精品在线视频| 丝袜美腿成人在线| 欧美人与禽zozo性伦| 亚洲人成伊人成综合网小说| 成人在线视频一区| 日本一区二区三区视频视频| 国内精品久久久久影院薰衣草 | 精品久久国产字幕高潮| 午夜成人在线视频| 在线电影欧美成精品| 天天操天天干天天综合网| 欧美亚洲另类激情小说| 亚洲激情网站免费观看| 在线精品视频免费观看| 亚洲美女屁股眼交3| 91久久精品国产91性色tv| 国产精品国产a级| 99久久精品免费看国产| 日韩一区在线免费观看| 色综合一个色综合| 亚洲午夜免费视频| 91精品一区二区三区在线观看| 亚洲国产aⅴ天堂久久| 欧美日韩高清一区二区不卡| 天使萌一区二区三区免费观看| 欧美日韩夫妻久久| 老司机免费视频一区二区| 26uuu国产在线精品一区二区| 极品少妇一区二区三区精品视频| 亚洲精品一区二区三区99| 久久99精品国产.久久久久久| 精品成人私密视频| 丁香婷婷综合五月| 亚洲柠檬福利资源导航| 欧美人妇做爰xxxⅹ性高电影 | 在线中文字幕一区| 亚洲国产毛片aaaaa无费看| 欧美精品在欧美一区二区少妇| 日本视频中文字幕一区二区三区 | 日本一区二区综合亚洲| av中文字幕在线不卡| 亚洲人亚洲人成电影网站色| 欧美亚洲丝袜传媒另类| 毛片基地黄久久久久久天堂| xnxx国产精品| 色老头久久综合| 琪琪一区二区三区| 国产精品三级视频| 9191久久久久久久久久久| 国产一区二区成人久久免费影院| 国产精品毛片无遮挡高清| 欧美婷婷六月丁香综合色| 国产一区二区三区在线观看精品 |