123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842 |
- //---------------------------------------------------------------------------
- #pragma hdrstop
- #include "CDSCrossF.h"
- #include "ITS_OPLibF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- //---------------------------------------------------------------------------
- void TCrossCam::Copy(TCrossCam *AObj)
- {
- if (AObj)
- {
- AObj->CROSS_ID = CROSS_ID;
- AObj->CTLR_NMBR = CTLR_NMBR;
- AObj->NAME = NAME;
- AObj->DIRECTION = DIRECTION;
- AObj->X_CRDN = X_CRDN;
- AObj->Y_CRDN = Y_CRDN;
- AObj->ANGLE = ANGLE;
- AObj->IP = IP;
- AObj->ID = ID;
- AObj->PWD = PWD;
- AObj->RTSP_URL = RTSP_URL;
- AObj->RTSP_PORT = RTSP_PORT;
- AObj->HTTP_PORT = HTTP_PORT;
- AObj->TYPE_CD = TYPE_CD;
- AObj->DEL_YN = DEL_YN;
- }
- }
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- TCross::TCross()
- {
- }
- //---------------------------------------------------------------------------
- TCross::~TCross()
- {
- }
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- TCrossManager *CrossManager = NULL;
- //---------------------------------------------------------------------------
- TCrossManager::TCrossManager()
- {
- }
- //---------------------------------------------------------------------------
- TCrossManager::~TCrossManager()
- {
- FLists.RemoveAll();
- FCamLists.RemoveAll();
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "SELECT A.* \r\n"
- " FROM MST_CROSS A \r\n";
- FLists.Lock();
- try
- {
- FLists.RemoveAll();
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Prepared = true;
- pADO->Open();
- for( ; !pADO->Eof; pADO->Next())
- {
- TCross *pObj = new TCross();
- pObj->CTLR_NMBR = pADO->FieldByName("CROSS_ID")->AsString;
- pObj->NAME = pADO->FieldByName("NAME")->AsString.Trim();
- pObj->CROSS_TYPE = pADO->FieldByName("CROSS_TYPE")->AsString.Trim();
- pObj->X_CRDN = pADO->FieldByName("X")->AsFloat;
- pObj->Y_CRDN = pADO->FieldByName("Y")->AsFloat;
- pObj->ZOOM_LEVEL = pADO->FieldByName("ZOOM_LEVEL")->AsInteger;
- pObj->LOCAL_GROUP_ID = pADO->FieldByName("LOCAL_GROUP_ID")->AsString.Trim();
- pObj->NAME = StringReplace(pObj->NAME , "\"", "", TReplaceFlags() << rfReplaceAll);
- pObj->TYPE_CD = "CRS";
- pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString.Trim();
- FLists.Push(pObj->CTLR_NMBR, pObj);
- pObj->Completed = true;
- }
- }
- catch(EDatabaseError &E)
- {
- DBERRORMSG("TCrossManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORMSG("TCrossManager::LoadFromDb", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- FLists.UnLock();
- }
- return LoadCrossCam(ADbConn);
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::LoadCrossCam(TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- FLists.Lock();
- try
- {
- FOR_STL(TCross*, pObj, FLists)
- {
- pObj->FLists.RemoveAll();
- }
- }
- __finally
- {
- FLists.UnLock();
- }
- sQry = "SELECT A.CROSS_ID, B.CAM_ID, B.NAME, B.DEL_YN, C.DIRECTION, C.X, C.Y, C.ANGLE, \r\n"
- " B.IP, B.ID, B.PW, B.RTSP_URL, B.RTSP_PORT, B.HTTP_PORT, B.RIGHT_USE \r\n"
- " FROM MST_CROSS A, MST_CCAM B, MST_CCAM_ACCESS C \r\n"
- " WHERE A.CROSS_ID = B.CROSS_ID \r\n"
- " AND B.CAM_ID = C.CAM_ID \r\n"
- " ORDER BY A.CROSS_ID, B.CAM_ID \r\n";
- try
- {
- String WCAM_CTLR_NMBR;
- FLists.Lock();
- FCamLists.Lock();
- FCamLists.RemoveAll();
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Prepared = true;
- pADO->Open();
- for( ; !pADO->Eof; pADO->Next())
- {
- String CROSS_ID = pADO->FieldByName("CROSS_ID")->AsString;
- TCross *pCross = FLists.Find(String(CROSS_ID));
- if (!pCross) continue;
- TCrossCam *pObj = new TCrossCam();
- if (pObj)
- {
- pObj->CROSS_ID = CROSS_ID;
- pObj->CTLR_NMBR = pADO->FieldByName("CAM_ID")->AsString;
- pObj->NAME = pADO->FieldByName("NAME")->AsString;
- pObj->NAME = StringReplace(pObj->NAME , "\"", "", TReplaceFlags() << rfReplaceAll);
- pObj->DIRECTION = pADO->FieldByName("DIRECTION")->AsString.Trim();
- pObj->X_CRDN = pADO->FieldByName("X")->AsFloat;
- pObj->Y_CRDN = pADO->FieldByName("Y")->AsFloat;
- pObj->ANGLE = pADO->FieldByName("ANGLE")->AsInteger;
- pObj->IP = pADO->FieldByName("IP")->AsString.Trim();
- pObj->ID = pADO->FieldByName("ID")->AsString.Trim();
- pObj->PWD = pADO->FieldByName("PW")->AsString.Trim();
- pObj->RTSP_URL = pADO->FieldByName("RTSP_URL")->AsString.Trim();
- pObj->RTSP_PORT = pADO->FieldByName("RTSP_PORT")->AsInteger;
- pObj->HTTP_PORT = pADO->FieldByName("HTTP_PORT")->AsInteger;
- pObj->TYPE_CD = "CRSCAM";
- pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString.Trim();
- pCross->FLists.Push(pObj->CTLR_NMBR, pObj);
- TCrossCam *pObj2 = new TCrossCam();
- pObj->Copy(pObj2);
- FCamLists.Push(pObj2->CTLR_NMBR, pObj2);
- }
- }
- }
- catch(EDatabaseError &E)
- {
- DBERRORMSG("TCrossManager::LoadCrossCam", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORMSG("TCrossManager::LoadCrossCam", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- FLists.UnLock();
- FCamLists.UnLock();
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::LoadStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
- {
- #if 0
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "SELECT * \r\n"
- " FROM TB_WCAM_CTLR_STTS A, \r\n"
- " TB_WCAM_CTLR B \r\n"
- " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n"
- " AND A.UPDT_DT >= TO_CHAR(SYSDATE-2/1440, 'YYYYMMDDHH24MISS') \r\n";
- FLists.Lock();
- try
- {
- FOR_STL(TCross*, pTmp, FLists)
- {
- pTmp->STATE.Comm = wcam_error;
- }
- TCross *pObj = NULL;
- try
- {
- int nORD;
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Prepared = true;
- pADO->Open();
- for( ; !pADO->Eof; pADO->Next())
- {
- String WCAM_CTLR_NMBR = pADO->FieldByName("WCAM_CTLR_NMBR")->AsString;
- pObj = FLists.Find(WCAM_CTLR_NMBR);
- if (!pObj) continue;
- String UPDT_DT = pADO->FieldByName("UPDT_DT")->AsString;
- String CMNC_STTS_CD = pADO->FieldByName("CMNC_STTS_CD")->AsString;
- if (CMNC_STTS_CD != "CMS0")
- {
- //Åë½ÅÀå¾Ö
- continue;
- }
- pObj->STATE.Comm = (CMNC_STTS_CD == "CMS0") ? wcam_normal : wcam_error;
- }
- }
- catch(EDatabaseError &E)
- {
- DBERRORLOG("TCrossManager::LoadStatusFromDb", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORLOG("TCrossManager::LoadStatusFromDb", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- FLists.UnLock();
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- #endif
- return true;
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::DeleteCross(TCross *AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "UPDATE MST_CROSS \r\n"
- " SET DEL_YN = 'Y' \r\n"
- " WHERE CROSS_ID = :p01 \r\n";
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->ExecSQL();
- sQry = "DELETE TB_FCLT_INFR \r\n"
- " WHERE FCLT_ID = :p01 \r\n";
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->ExecSQL();
- return true;
- }
- catch(EDatabaseError &E)
- {
- DBERRORLOG("TCrossManager::DeleteCross", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORLOG("TCrossManager::DeleteCross", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::InsertCross(TCross *AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- return MergeCross(AObj, ADbConn);
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::UpdateCross(TCross *AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- return MergeCross(AObj, ADbConn);
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::MergeCross(TCross *AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "MERGE INTO MST_CROSS L \r\n"
- "USING (SELECT :p01 AS CROSS_ID, \r\n"
- " :p02 AS NAME, \r\n"
- " :p03 AS CROSS_TYPE, \r\n"
- " :p04 AS X, \r\n"
- " :p05 AS Y, \r\n"
- " :p06 AS ZOOM_LEVEL, \r\n"
- " :p07 AS LOCAL_GROUP_ID, \r\n"
- " :p08 AS DEL_YN \r\n"
- " FROM DUAL) M \r\n"
- " ON (L.CROSS_ID = M.CROSS_ID) \r\n"
- "WHEN MATCHED THEN \r\n"
- " UPDATE SET L.NAME = M.NAME, \r\n"
- " L.CROSS_TYPE = M.CROSS_TYPE, \r\n"
- " L.X = M.X, \r\n"
- " L.Y = M.Y, \r\n"
- " L.ZOOM_LEVEL = M.ZOOM_LEVEL, \r\n"
- " L.LOCAL_GROUP_ID = M.LOCAL_GROUP_ID, \r\n"
- " L.DEL_YN = M.DEL_YN \r\n"
- "WHEN NOT MATCHED THEN \r\n"
- " INSERT (CROSS_ID, \r\n"
- " NAME, \r\n"
- " CROSS_TYPE, \r\n"
- " X, \r\n"
- " Y, \r\n"
- " ZOOM_LEVEL, \r\n"
- " LOCAL_GROUP_ID, \r\n"
- " DEL_YN ) \r\n"
- " VALUES (M.CROSS_ID, \r\n"
- " M.NAME, \r\n"
- " M.CROSS_TYPE, \r\n"
- " M.X, \r\n"
- " M.Y, \r\n"
- " M.ZOOM_LEVEL, \r\n"
- " M.LOCAL_GROUP_ID, \r\n"
- " M.DEL_YN ) \r\n";
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->Parameters->ParamByName("p02")->Value = AObj->NAME;
- pADO->Parameters->ParamByName("p03")->Value = AObj->CROSS_TYPE;
- pADO->Parameters->ParamByName("p04")->Value = AObj->X_CRDN;
- pADO->Parameters->ParamByName("p05")->Value = AObj->Y_CRDN;
- pADO->Parameters->ParamByName("p06")->Value = AObj->ZOOM_LEVEL;
- pADO->Parameters->ParamByName("p07")->Value = AObj->LOCAL_GROUP_ID;
- pADO->Parameters->ParamByName("p08")->Value = AObj->DEL_YN;
- pADO->ExecSQL();
- return MergeFcltInfo(AObj, ADbConn);
- }
- catch(EDatabaseError &E)
- {
- DBERRORLOG("TCrossManager::MergeWCam", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORLOG("TCrossManager::MergeWCam", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::MergeFcltInfo(TCross *AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "MERGE INTO TB_FCLT_INFR L \r\n"
- "USING (SELECT :p01 AS FCLT_ID, \r\n"
- " :p02 AS FCLT_TYPE, \r\n"
- " :p03 AS FCLT_LCTN \r\n"
- " FROM DUAL) M \r\n"
- " ON (L.FCLT_ID = M.FCLT_ID AND L.FCLT_TYPE = M.FCLT_TYPE) \r\n"
- "WHEN MATCHED \r\n"
- "THEN \r\n"
- " UPDATE SET L.FCLT_LCTN = M.FCLT_LCTN, \r\n"
- " L.DEL_YN = 'N' \r\n"
- "WHEN NOT MATCHED \r\n"
- "THEN \r\n"
- " INSERT ( FCLT_ID, FCLT_TYPE, FCLT_LCTN) \r\n"
- " VALUES (M.FCLT_ID, M.FCLT_TYPE, M.FCLT_LCTN) \r\n";
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->Parameters->ParamByName("p02")->Value = "CRS";
- pADO->Parameters->ParamByName("p03")->Value = AObj->NAME;
- pADO->ExecSQL();
- return true;
- }
- catch(EDatabaseError &E)
- {
- DBERRORLOG("TCrossManager::MergeFcltInfo", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORLOG("TCrossManager::MergeFcltInfo", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::GetNextCrossId(int &ANmbr, int &AId, TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "SELECT NVL(MAX(CROSS_ID), 0) + 1 AS NEWID FROM MST_CROSS \r\n";
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Prepared = true;
- pADO->Open();
- ANmbr = pADO->FieldByName("NEWID")->AsInteger;
- AId = ANmbr;
- return true;
- }
- catch(EDatabaseError &E)
- {
- DBERRORLOG("TCrossManager::GetNextCrossId", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORLOG("TCrossManager::GetNextCrossId", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- return false;
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::SaveCrossCam(TCrossCam *AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- return MergeCrossCam(AObj, ADbConn);
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::DeleteCrossCam(TCrossCam *AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "UPDATE MST_CCAM \r\n"
- " SET DEL_YN = 'Y' \r\n"
- " WHERE CAM_ID = :p01 \r\n";
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->ExecSQL();
- sQry = "DELETE TB_FCLT_INFR \r\n"
- " WHERE FCLT_ID = :p01 \r\n";
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->ExecSQL();
- return true;
- }
- catch(EDatabaseError &E)
- {
- DBERRORLOG("TCrossManager::DeleteCrossCam", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORLOG("TCrossManager::DeleteCrossCam", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::MergeCrossCam(TCrossCam* AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- sQry = "MERGE INTO MST_CCAM L \r\n"
- "USING (SELECT :p01 AS CAM_ID, \r\n"
- " :p02 AS PARENT_ID, \r\n"
- " :p03 AS NAME, \r\n"
- " :p04 AS IP, \r\n"
- " :p05 AS ID, \r\n"
- " :p06 AS PW, \r\n"
- " :p07 AS RTSP_URL, \r\n"
- " :p08 AS RTSP_PORT, \r\n"
- " :p09 AS HTTP_PORT, \r\n"
- " :p10 AS CROSS_ID, \r\n"
- " :p11 AS RIGHT_USE, \r\n"
- " :p12 AS DEL_YN \r\n"
- " FROM DUAL) M \r\n"
- " ON (L.CAM_ID = M.CAM_ID) \r\n"
- "WHEN MATCHED THEN \r\n"
- " UPDATE SET L.PARENT_ID = M.PARENT_ID, \r\n"
- " L.NAME = M.NAME, \r\n"
- " L.IP = M.IP, \r\n"
- " L.ID = M.ID, \r\n"
- " L.PW = M.PW, \r\n"
- " L.RTSP_URL = M.RTSP_URL, \r\n"
- " L.RTSP_PORT = M.RTSP_PORT, \r\n"
- " L.HTTP_PORT = M.HTTP_PORT, \r\n"
- " L.CROSS_ID = M.CROSS_ID, \r\n"
- " L.RIGHT_USE = M.RIGHT_USE, \r\n"
- " L.DEL_YN = M.DEL_YN \r\n"
- "WHEN NOT MATCHED THEN \r\n"
- " INSERT (CAM_ID, \r\n"
- " PARENT_ID, \r\n"
- " NAME, \r\n"
- " IP, \r\n"
- " ID, \r\n"
- " PW, \r\n"
- " RTSP_URL, \r\n"
- " RTSP_PORT, \r\n"
- " HTTP_PORT, \r\n"
- " CROSS_ID, \r\n"
- " RIGHT_USE, \r\n"
- " DEL_YN ) \r\n"
- " VALUES (M.CAM_ID, \r\n"
- " M.PARENT_ID, \r\n"
- " M.NAME, \r\n"
- " M.IP, \r\n"
- " M.ID, \r\n"
- " M.PW, \r\n"
- " M.RTSP_URL, \r\n"
- " M.RTSP_PORT, \r\n"
- " M.HTTP_PORT, \r\n"
- " M.CROSS_ID, \r\n"
- " M.RIGHT_USE, \r\n"
- " M.DEL_YN ) \r\n";
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->Parameters->ParamByName("p02")->Value = "";
- pADO->Parameters->ParamByName("p03")->Value = AObj->NAME;
- pADO->Parameters->ParamByName("p04")->Value = AObj->IP;
- pADO->Parameters->ParamByName("p05")->Value = AObj->ID;
- pADO->Parameters->ParamByName("p06")->Value = AObj->PWD;
- pADO->Parameters->ParamByName("p07")->Value = AObj->RTSP_URL;
- pADO->Parameters->ParamByName("p08")->Value = AObj->RTSP_PORT;
- pADO->Parameters->ParamByName("p09")->Value = AObj->HTTP_PORT;
- pADO->Parameters->ParamByName("p10")->Value = AObj->CROSS_ID;
- pADO->Parameters->ParamByName("p11")->Value = AObj->RIGHT_USE;
- pADO->Parameters->ParamByName("p12")->Value = AObj->DEL_YN;
- pADO->ExecSQL();
- sQry = "MERGE INTO MST_CCAM_ACCESS L \r\n"
- "USING (SELECT \r\n"
- " :p01 AS CAM_ID, \r\n"
- " :p02 AS DIRECTION, \r\n"
- " :p03 AS NAME, \r\n"
- " :p04 AS X, \r\n"
- " :p05 AS Y, \r\n"
- " :p06 AS ANGLE \r\n"
- " FROM DUAL) M \r\n"
- " ON (L.CAM_ID = M.CAM_ID) \r\n"
- "WHEN MATCHED THEN \r\n"
- " UPDATE SET \r\n"
- " L.DIRECTION = M.DIRECTION, \r\n"
- " L.NAME = M.NAME, \r\n"
- " L.X = M.X, \r\n"
- " L.Y = M.Y, \r\n"
- " L.ANGLE = M.ANGLE \r\n"
- "WHEN NOT MATCHED THEN \r\n"
- " INSERT ( \r\n"
- " CAM_ID, \r\n"
- " DIRECTION, \r\n"
- " NAME, \r\n"
- " X, \r\n"
- " Y, \r\n"
- " ANGLE ) \r\n"
- " VALUES ( \r\n"
- " M.CAM_ID, \r\n"
- " M.DIRECTION, \r\n"
- " M.NAME, \r\n"
- " M.X, \r\n"
- " M.Y, \r\n"
- " M.ANGLE ) \r\n";
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->Parameters->ParamByName("p02")->Value = AObj->DIRECTION;
- pADO->Parameters->ParamByName("p03")->Value = AObj->NAME;
- pADO->Parameters->ParamByName("p04")->Value = AObj->X_CRDN;
- pADO->Parameters->ParamByName("p05")->Value = AObj->Y_CRDN;
- pADO->Parameters->ParamByName("p06")->Value = AObj->ANGLE;
- pADO->ExecSQL();
- return MergeFcltInfo2(AObj, ADbConn);
- }
- catch(EDatabaseError &E)
- {
- DBERRORLOG("TCrossManager::MergeCrossCam", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORLOG("TCrossManager::MergeCrossCam", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool TCrossManager::MergeFcltInfo2(TCrossCam *AObj, TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "MERGE INTO TB_FCLT_INFR L \r\n"
- "USING (SELECT :p01 AS FCLT_ID, \r\n"
- " :p02 AS FCLT_TYPE, \r\n"
- " :p03 AS FCLT_LCTN \r\n"
- " FROM DUAL) M \r\n"
- " ON (L.FCLT_ID = M.FCLT_ID AND L.FCLT_TYPE = M.FCLT_TYPE) \r\n"
- "WHEN MATCHED \r\n"
- "THEN \r\n"
- " UPDATE SET L.FCLT_LCTN = M.FCLT_LCTN, \r\n"
- " L.DEL_YN = 'N' \r\n"
- "WHEN NOT MATCHED \r\n"
- "THEN \r\n"
- " INSERT ( FCLT_ID, FCLT_TYPE, FCLT_LCTN) \r\n"
- " VALUES (M.FCLT_ID, M.FCLT_TYPE, M.FCLT_LCTN) \r\n";
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_NMBR;
- pADO->Parameters->ParamByName("p02")->Value = "CRSCAM";
- pADO->Parameters->ParamByName("p03")->Value = AObj->NAME;
- pADO->ExecSQL();
- return true;
- }
- catch(EDatabaseError &E)
- {
- DBERRORLOG("TCrossManager::MergeFcltInfo2", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORLOG("TCrossManager::MergeFcltInfo2", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
|