//--------------------------------------------------------------------------- #pragma hdrstop #include "AppGlobalF.h" #include "CDSMonitoringObjF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- TMonitoringScreenManager *ObjScreenManager = NULL; //--------------------------------------------------------------------------- TMonitoringScreenManager::TMonitoringScreenManager() { } //--------------------------------------------------------------------------- TMonitoringScreenManager::~TMonitoringScreenManager() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- void TMonitoringScreenManager::Init() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TMonitoringCtlrManager *ObjCtlrManager = NULL; //--------------------------------------------------------------------------- TMonitoringCtlrManager::TMonitoringCtlrManager(int AMonitoringType) { FMonitoringType = AMonitoringType; } //--------------------------------------------------------------------------- TMonitoringCtlrManager::~TMonitoringCtlrManager() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::LoadCtlrFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; try { FLists.Lock(); FLists.RemoveAll(); } __finally { FLists.UnLock(); } #ifdef __CCTV__ sQry = "SELECT A.CCTV_MNGM_NMBR AS CTLR_NMBR, \r\n" " A.CCTV_CTLR_ID AS ID, \r\n" " A.CCTV_CTLR_ID AS CTLR_ID, \r\n" " A.ISTL_LCTN_NM AS NAME, \r\n" " A.CCTV_CTLR_IP AS CTLR_IP, \r\n" " A.CCTV_CTLR_ID AS INFO1, \r\n" " A.CCTV_CTLR_ID AS INFO2, \r\n" " NULL AS STRM_IP, \r\n" " NULL AS STRM_ID, \r\n" " NULL AS STRM_PSWD, \r\n" " A.STRM_SESN_NM AS STRM_ADDR, \r\n" " A.FULL_STRM_SESN_NM AS FULL_STRM_ADDR \r\n" " FROM TB_CCTV_CTLR A \r\n" " WHERE A.DEL_YN = 'N' \r\n"; #endif #ifdef __VMS__ sQry = "SELECT A.VMS_CTLR_NMBR AS CTLR_NMBR, \r\n" " A.VMS_CTLR_ID AS ID, \r\n" " A.VMS_CTLR_ID AS CTLR_ID, \r\n" " A.VMS_NM AS NAME, \r\n" " A.VMS_CTLR_IP AS CTLR_IP, \r\n" " A.VMS_TYPE_CD AS INFO1, \r\n" " A.VMS_TYPE_CD AS INFO2, \r\n" " A.WEB_CMRA_IP AS STRM_IP, \r\n" " A.WEB_CMRA_ID AS STRM_ID, \r\n" " A.WEB_CMRA_PWD AS STRM_PSWD, \r\n" " A.STRM_SESN_NM AS STRM_ADDR, \r\n" " A.STRM_SESN_NM AS FULL_STRM_ADDR \r\n" " FROM TB_VMS_CTLR A \r\n" " WHERE A.DEL_YN = 'N' \r\n"; #endif try { FLists.Lock(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ADbConn; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { TMonitoringCtlr *pObj = new TMonitoringCtlr(); pObj->CTLR_NMBR = pADO->FieldByName("CTLR_NMBR")->AsString; pObj->ID = pADO->FieldByName("ID")->AsString.Trim(); pObj->CTLR_ID = pADO->FieldByName("CTLR_ID")->AsString.Trim(); pObj->NAME = pADO->FieldByName("NAME")->AsString.Trim(); pObj->CTLR_IP = pADO->FieldByName("CTLR_IP")->AsString.Trim(); pObj->INFO1 = pADO->FieldByName("INFO1")->AsString.Trim(); pObj->INFO2 = pADO->FieldByName("INFO2")->AsString.Trim(); pObj->STRM_IP = pADO->FieldByName("STRM_IP")->AsString.Trim(); pObj->STRM_ID = pADO->FieldByName("STRM_ID")->AsString.Trim(); pObj->STRM_PSWD = pADO->FieldByName("STRM_PSWD")->AsString.Trim(); pObj->STRM_ADDR = pADO->FieldByName("STRM_ADDR")->AsString.Trim(); pObj->FULL_STRM_ADDR = pADO->FieldByName("FULL_STRM_ADDR")->AsString.Trim(); if (pObj->FULL_STRM_ADDR == "") { pObj->FULL_STRM_ADDR = pObj->STRM_ADDR; } FLists.Push(pObj->CTLR_NMBR, pObj); } } catch(EDatabaseError &E) { DBERRORMSG("TMonitoringCtlrManager::LoadCtlrFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TMonitoringCtlrManager::LoadCtlrFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::InitMonitoringFormFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; String TBL_NAME = "TB_CCTV_MONITORING"; String CTLR_NAME = "CCTV_MNGM_NMBR"; #ifdef __CCTV__ TBL_NAME = "TB_CCTV_MONITORING"; CTLR_NAME = "CCTV_MNGM_NMBR"; // ±¸¹Ì½Ã´Â TB_CCTV_MONITORING.CCTV_CTLR_NMBR ÀÓ #endif #ifdef __VMS__ TBL_NAME = "TB_VMS_MONITORING"; CTLR_NAME = "VMS_CTLR_NMBR"; #endif sQry = "SELECT COUNT(1) AS CNT \r\n" " FROM " + TBL_NAME + " WHERE MONITORING_TYPE = :p01 \r\n"; try { int nFormSeq; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ADbConn; pADO->Close(); pADO->SQL->Text = sQry; pADO->CursorType = ctOpenForwardOnly; pADO->LockType = ltReadOnly; pADO->DisableControls(); pADO->Parameters->ParamByName("p01")->Value = String(FMonitoringType); pADO->Open(); pADO->First(); int nFormCnt = pADO->FieldByName("CNT")->AsInteger; if (nFormCnt > 0) return true; sQry = "INSERT INTO " + TBL_NAME + " ( \r\n" " MONITORING_TYPE, \r\n" " MONITORING_NM, \r\n" " MONITORING_SEQ, \r\n" " " + CTLR_NAME + ", \r\n" " VIEW_MODE \r\n" " ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " :p05 \r\n" " ) \r\n"; pADO->Close(); pADO->SQL->Text = sQry; String sFormName = "±âº»"; nFormCnt = 0; FOR_STL(TMonitoringCtlr*, pObj, FLists) { nFormCnt++; pADO->Parameters->ParamByName("p01")->Value = String(FMonitoringType); pADO->Parameters->ParamByName("p02")->Value = sFormName; pADO->Parameters->ParamByName("p03")->Value = String(nFormCnt); pADO->Parameters->ParamByName("p04")->Value = String(pObj->CTLR_NMBR); pADO->Parameters->ParamByName("p04")->Value = 0; pADO->ExecSQL(); //pADO->RowsAffected; if (nFormCnt == 4) break; /* ÇÑÈ­¸é¿¡ ÃÖ´ë 4°³ ±îÁö ¼³Á¤ */ } } catch(EDatabaseError &E) { DBERRORMSG("FrmCmraViewerMain::InitMonitoringForm", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("FrmCmraViewerMain::InitMonitoringForm", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::LoadMonitoringFormFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; if (ObjScreenManager == NULL) { ObjScreenManager = new TMonitoringScreenManager(); } ObjScreenManager->Init(); #ifdef __CCTV__ // ±¸¹Ì½Ã´Â TB_CCTV_MONITORING.CCTV_CTLR_NMBR ÀÓ sQry = "SELECT TRIM(A.MONITORING_NM) AS MONITORING_NM, \r\n" " A.MONITORING_SEQ, \r\n" " A.CCTV_MNGM_NMBR AS CTLR_NMBR, \r\n" " A.VIEW_MODE \r\n" " FROM TB_CCTV_MONITORING A, TB_CCTV_CTLR B \r\n" " WHERE B.DEL_YN = 'N' \r\n" " AND B.CCTV_MNGM_NMBR = A.CCTV_MNGM_NMBR \r\n" " AND A.MONITORING_TYPE = :p01 \r\n" " ORDER BY A.MONITORING_NM, A.MONITORING_SEQ \r\n"; #endif #ifdef __VMS__ sQry = "SELECT TRIM(A.MONITORING_NM) AS MONITORING_NM, \r\n" " A.MONITORING_SEQ, \r\n" " A.VMS_CTLR_NMBR AS CTLR_NMBR, \r\n" " 1 AS VIEW_MODE \r\n" " FROM TB_VMS_MONITORING A, TB_VMS_CTLR B \r\n" " WHERE B.DEL_YN = 'N' \r\n" " AND B.VMS_CTLR_NMBR = A.VMS_CTLR_NMBR \r\n" " AND A.MONITORING_TYPE = :p01 \r\n" " ORDER BY A.MONITORING_NM, A.MONITORING_SEQ \r\n"; #endif try { FLists.Lock(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ADbConn; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = String(FMonitoringType); pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String MONITORING_NM = pADO->FieldByName("MONITORING_NM")->AsString; int MONITORING_SEQ = pADO->FieldByName("MONITORING_SEQ")->AsInteger; String CTLR_NMBR = pADO->FieldByName("CTLR_NMBR")->AsString; int VIEW_MODE = pADO->FieldByName("VIEW_MODE")->AsInteger; TMonitoringScreen *pObj = ObjScreenManager->FLists.Find(MONITORING_NM); if (!pObj) { pObj = new TMonitoringScreen(); pObj->NAME = MONITORING_NM; ObjScreenManager->FLists.Push(pObj->NAME, pObj); } TScreenCtlr *pScr = new TScreenCtlr(); pScr->SEQ = pObj->FLists.Size()+1; pScr->CTLR_NMBR = CTLR_NMBR; pScr->VIEW_MODE = VIEW_MODE; pObj->FLists.Push(pScr->SEQ, pScr); } } catch(EDatabaseError &E) { DBERRORMSG("TMonitoringCtlrManager::LoadMonitoringFormFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TMonitoringCtlrManager::LoadMonitoringFormFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); FOR_STL(TMonitoringScreen*, pObj, ObjScreenManager->FLists) { int nCtlrCount = pObj->FLists.Size(); switch(nCtlrCount) { case 0: case 1: pObj->LAYOUT = 0; break; //1*1 case 2: case 3: case 4: pObj->LAYOUT = 1; break; //2*2 case 5: case 6: pObj->LAYOUT = 3; break; //3*2 case 7: case 8: case 9: pObj->LAYOUT = 2; break; //3*3 case 10: case 11: case 12: pObj->LAYOUT = 4; break; //4*3 case 13: case 14: case 15: case 16: pObj->LAYOUT = 5; break; //4*4 case 17: case 18: case 19: case 20: pObj->LAYOUT = 7; break; //5*4 case 21: case 22: case 23: case 24: pObj->LAYOUT = 8; break; //6*4 case 25: case 26: case 27: case 28: case 29: case 30: pObj->LAYOUT = 9; break; //6*5 default: if (nCtlrCount <= 42) pObj->LAYOUT = 10; //7*6 else if (nCtlrCount <= 56) pObj->LAYOUT = 11; //8*7 else pObj->LAYOUT = 12; //8*8 break; } } } return true; } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::DelMonitoringFormFromDb(String AMonitoringName, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; String TBL_NAME = "TB_CCTV_MONITORING"; #ifdef __CCTV__ TBL_NAME = "TB_CCTV_MONITORING"; #endif #ifdef __VMS__ TBL_NAME = "TB_VMS_MONITORING"; #endif sQry = "DELETE " + TBL_NAME + " \r\n" " WHERE MONITORING_TYPE = :p01 \r\n" " AND MONITORING_NM = :p02 \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ADbConn; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = String(FMonitoringType); pADO->Parameters->ParamByName("p02")->Value = AMonitoringName; pADO->ExecSQL(); //pADO->RowsAffected; } catch(EDatabaseError &E) { DBERRORMSG("TMonitoringCtlrManager::DelMonitoringFormFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TMonitoringCtlrManager::DelMonitoringFormFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::InsMonitoringFormFromDb(String AMonitoringName, int ASeq, String ACtlrNmbr, int AViewMode, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; String TBL_NAME = "TB_CCTV_MONITORING"; String CTLR_NAME = "CCTV_MNGM_NMBR"; #ifdef __CCTV__ TBL_NAME = "TB_CCTV_MONITORING"; CTLR_NAME = "CCTV_MNGM_NMBR"; // ±¸¹Ì½Ã´Â TB_CCTV_MONITORING.CCTV_CTLR_NMBR ÀÓ #endif #ifdef __VMS__ TBL_NAME = "TB_VMS_MONITORING"; CTLR_NAME = "VMS_CTLR_NMBR"; #endif sQry = "INSERT INTO " + TBL_NAME + " ( \r\n" " MONITORING_TYPE, \r\n" " MONITORING_NM, \r\n" " MONITORING_SEQ, \r\n" " " + CTLR_NAME + " \r\n" " ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04 \r\n" " ) \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ADbConn; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = String(FMonitoringType); pADO->Parameters->ParamByName("p02")->Value = AMonitoringName; pADO->Parameters->ParamByName("p03")->Value = ASeq; pADO->Parameters->ParamByName("p04")->Value = ACtlrNmbr; pADO->ExecSQL(); //pADO->RowsAffected; } catch(EDatabaseError &E) { DBERRORMSG("TMonitoringCtlrManager::InsMonitoringFormFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TMonitoringCtlrManager::InsMonitoringFormFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //---------------------------------------------------------------------------