//--------------------------------------------------------------------------- #pragma hdrstop #include "CDSVdsF.h" #include "ITSDbF.h" #include "AppGlobalF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) TItsVdsDtctCndt::TItsVdsDtctCndt() { FCompleted = false; FEditMode = DB_INIT; FGridIndex = -1; MEM_DEL = "N"; //Clear(); } //--------------------------------------------------------------------------- void TItsVdsDtctCndt::Clear() { CTLR_MNGM_NMBR = ""; DTCT_NMBR = ""; SYST_KIND_DVSN = ""; MAX_TFVL = ""; MIN_TFVL = ""; MAX_OCPY_RATE = ""; MIN_OCPY_RATE = ""; MAX_SPED = ""; MIN_SPED = ""; DEL_YN = ""; FRST_REGR_NMBR = ""; FRST_RGST_DT = ""; LAST_CRPR_NMBR = ""; LAST_CRCT_DT = ""; MEM_DEL = ""; } //--------------------------------------------------------------------------- TItsVdsDtctCndt::~TItsVdsDtctCndt() { } //--------------------------------------------------------------------------- TItsVdsDtctParam::TItsVdsDtctParam() { FCompleted = false; FEditMode = DB_INIT; FGridIndex = -1; MEM_DEL = "N"; //Clear(); } //--------------------------------------------------------------------------- void TItsVdsDtctParam::Clear() { CTLR_MNGM_NMBR = ""; DTCT_NMBR = ""; SYST_KIND_DVSN = ""; TFVL_FCTR = ""; OCPY_RATE_FCTR = ""; SPED_FCTR = ""; HDWY_FCTR = ""; FRST_REGR_NMBR = ""; FRST_RGST_DT = ""; LAST_CRPR_NMBR = ""; LAST_CRCT_DT = ""; DEL_YN = ""; MEM_DEL = ""; } //--------------------------------------------------------------------------- TItsVdsDtctParam::~TItsVdsDtctParam() { } //--------------------------------------------------------------------------- TItsVdsDtctLink::TItsVdsDtctLink() { FCompleted = false; FEditMode = DB_INIT; FGridIndex = -1; MEM_DEL = "N"; //Clear(); } //--------------------------------------------------------------------------- void TItsVdsDtctLink::Clear() { CTLR_MNGM_NMBR = ""; DTCT_NMBR = ""; LINK_ID = ""; MEM_DEL = ""; } //--------------------------------------------------------------------------- TItsVdsDtctLink::~TItsVdsDtctLink() { } //--------------------------------------------------------------------------- TItsVdsDtct::TItsVdsDtct() { FCompleted = false; FEditMode = DB_INIT; FGridIndex = -1; MEM_DEL = "N"; //Clear(); } //--------------------------------------------------------------------------- void TItsVdsDtct::Clear() { CTLR_MNGM_NMBR = ""; DTCT_NMBR = ""; DTCT_TYPE_CD = ""; STLN_DSTC = ""; ISTL_LANE = ""; DET_NMBR = ""; SNST = ""; DTCT_VALD_DSTC = ""; MDVH_UPLM_LNGT = ""; MDVH_LWLM_LNGT = ""; USE_YN = ""; CHNL_NMBR = ""; DLTR_NMBR = ""; DEL_DT = ""; DEL_YN = ""; FRST_REGR_NMBR = ""; FRST_RGST_DT = ""; LAST_CRPR_NMBR = ""; LAST_CRCT_DT = ""; MEM_DEL = ""; } //--------------------------------------------------------------------------- TItsVdsDtct::~TItsVdsDtct() { } //--------------------------------------------------------------------------- TItsVds::TItsVds() { FCompleted = false; FEditMode = DB_INIT; FGridIndex = -1; MEM_DEL = "N"; //Clear(); FData1 = NULL; FData2 = NULL; FData3 = NULL; FMarker = NULL; } //--------------------------------------------------------------------------- void TItsVds::Clear() { CTLR_MNGM_NMBR = ""; CTLR_TYPE_CD = ""; VALD_YN = ""; X_CRDN = ""; Y_CRDN = ""; LCTN = ""; TRMN_IP = ""; TRMN_PORT = ""; CTLR_CLCT_CYCL = ""; CTLR_STTS_CYCL = ""; LOOP_BORD_NUM = ""; DLTR_NMBR = ""; DEL_DT = ""; DEL_YN = ""; FRST_REGR_NMBR = ""; FRST_RGST_DT = ""; LAST_CRPR_NMBR = ""; LAST_CRCT__DT = ""; MEM_DEL = ""; } //--------------------------------------------------------------------------- TItsVds::~TItsVds() { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TItsVdsManager *ItsVdsManager = NULL; //--------------------------------------------------------------------------- /* * Vds Manager */ TItsVdsManager::TItsVdsManager() { } //--------------------------------------------------------------------------- TItsVdsManager::~TItsVdsManager() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- bool TItsVdsManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT CTLR_MNGM_NMBR, \r\n" " CTLR_TYPE_CD, \r\n" " VALD_YN, \r\n" " X_CRDN, \r\n" " Y_CRDN, \r\n" " LCTN, \r\n" " TRMN_IP, \r\n" " TRMN_PORT, \r\n" " CTLR_CLCT_CYCL, \r\n" " CTLR_STTS_CYCL, \r\n" " LOOP_BORD_NUM, \r\n" " DLTR_NMBR, \r\n" " DEL_DT, \r\n" " DEL_YN, \r\n" " FRST_REGR_NMBR, \r\n" " FRST_RGST_DT, \r\n" " LAST_CRPR_NMBR, \r\n" " LAST_CRCT__DT, \r\n" " VDS_CTLR_ID \r\n" " FROM TB_VDS_CTLR \r\n"; //" WHERE DEL_YN = 'N' \r\n"; //" ORDER BY CTLR_MNGM_NMBR \r\n"; try { FLists.Lock(); FLists.RemoveAll(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { TItsVds *pObj = new TItsVds(); pObj->CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString; pObj->CTLR_TYPE_CD = pADO->FieldByName("CTLR_TYPE_CD")->AsString; pObj->VALD_YN = pADO->FieldByName("VALD_YN")->AsString; pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString; pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString; pObj->LCTN = pADO->FieldByName("LCTN")->AsString; pObj->TRMN_IP = pADO->FieldByName("TRMN_IP")->AsString; pObj->TRMN_PORT = pADO->FieldByName("TRMN_PORT")->AsString; pObj->CTLR_CLCT_CYCL = pADO->FieldByName("CTLR_CLCT_CYCL")->AsString; pObj->CTLR_STTS_CYCL = pADO->FieldByName("CTLR_STTS_CYCL")->AsString; pObj->LOOP_BORD_NUM = pADO->FieldByName("LOOP_BORD_NUM")->AsString; pObj->DLTR_NMBR = pADO->FieldByName("DLTR_NMBR")->AsString; pObj->DEL_DT = pADO->FieldByName("DEL_DT")->AsString; pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString; pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString; pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString; pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString; pObj->LAST_CRCT__DT = pADO->FieldByName("LAST_CRCT__DT")->AsString; pObj->VDS_CTLR_ID = pADO->FieldByName("VDS_CTLR_ID")->AsString; FLists.Push(pObj->CTLR_MNGM_NMBR, pObj); pObj->Completed = true; pObj->MEM_DEL = "N"; } } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDb", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::LoadFromDtctDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT DTCT_NMBR, \r\n" " DTCT_TYPE_CD, \r\n" " STLN_DSTC, \r\n" " ISTL_LANE, \r\n" " DET_NMBR, \r\n" " SNST, \r\n" " DTCT_VALD_DSTC, \r\n" " MDVH_UPLM_LNGT, \r\n" " MDVH_LWLM_LNGT, \r\n" " USE_YN, \r\n" " CHNL_NMBR, \r\n" " DLTR_NMBR, \r\n" " DEL_DT, \r\n" " DEL_YN, \r\n" " FRST_REGR_NMBR, \r\n" " FRST_RGST_DT, \r\n" " LAST_CRPR_NMBR, \r\n" " LAST_CRCT_DT, \r\n" #ifdef YONGIN_VDS " CTLR_MNGM_NMBR, \r\n" " VDS_DTCT_NM \r\n" #else " CTLR_MNGM_NMBR \r\n" #endif " FROM TB_VDS_DTCT_MSTR \r\n"; //" WHERE DEL_YN = 'N' \r\n" //" ORDER BY DTCT_NMBR \r\n"; try { TItsVds *pVds; FLists.Lock(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString; pVds = FLists.Find(CTLR_MNGM_NMBR); if (!pVds) continue; TItsVdsDtct *pObj = new TItsVdsDtct(); pObj->CTLR_MNGM_NMBR = CTLR_MNGM_NMBR; pObj->DTCT_NMBR = pADO->FieldByName("DTCT_NMBR")->AsString; pObj->DTCT_TYPE_CD = pADO->FieldByName("DTCT_TYPE_CD")->AsString; pObj->STLN_DSTC = pADO->FieldByName("STLN_DSTC")->AsString; pObj->ISTL_LANE = pADO->FieldByName("ISTL_LANE")->AsString; pObj->DET_NMBR = pADO->FieldByName("DET_NMBR")->AsString; pObj->SNST = pADO->FieldByName("SNST")->AsString; pObj->DTCT_VALD_DSTC = pADO->FieldByName("DTCT_VALD_DSTC")->AsString; pObj->MDVH_UPLM_LNGT = pADO->FieldByName("MDVH_UPLM_LNGT")->AsString; pObj->MDVH_LWLM_LNGT = pADO->FieldByName("MDVH_LWLM_LNGT")->AsString; pObj->USE_YN = pADO->FieldByName("USE_YN")->AsString; pObj->CHNL_NMBR = pADO->FieldByName("CHNL_NMBR")->AsString; pObj->DLTR_NMBR = pADO->FieldByName("DLTR_NMBR")->AsString; pObj->DEL_DT = pADO->FieldByName("DEL_DT")->AsString; pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString; pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString; pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString; pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString; pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString; #ifdef YONGIN_VDS pObj->VDS_DTCT_NM = pADO->FieldByName("VDS_DTCT_NM")->AsString; #endif pVds->FSubLists.Push(pObj->DTCT_NMBR, pObj); pObj->Completed = true; pObj->MEM_DEL = "N"; } } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDtctDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDtctDb", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::LoadFromDtctLinkDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.CTLR_MNGM_NMBR, \r\n" " A.DTCT_NMBR, \r\n" " B.LINK_ID \r\n" " FROM TB_VDS_DTCT_MSTR A, \r\n" " TB_VDS_DTCT_LINK_RLTN B \r\n" " WHERE A.DTCT_NMBR = B.DTCT_NMBR \r\n" " ORDER BY CTLR_MNGM_NMBR \r\n"; try { TItsVds *pVds; TItsVdsDtct *pVdsDtct; FLists.Lock(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString; pVds = FLists.Find(CTLR_MNGM_NMBR); if (!pVds) continue; String DTCT_NMBR = pADO->FieldByName("DTCT_NMBR")->AsString; pVdsDtct = pVds->FSubLists.Find(DTCT_NMBR); if (!pVdsDtct) continue; TItsVdsDtctLink *pObj = new TItsVdsDtctLink(); pObj->CTLR_MNGM_NMBR = CTLR_MNGM_NMBR; pObj->DTCT_NMBR = DTCT_NMBR; pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString; pVdsDtct->FLinkLists.Push(pObj->LINK_ID, pObj); pObj->Completed = true; pObj->MEM_DEL = "N"; } } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDtctLinkDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDtctLinkDb", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::LoadFromDtctParamDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.CTLR_MNGM_NMBR, \r\n" " A.DTCT_NMBR, \r\n" " B.SYST_KIND_DVSN, \r\n" " B.TFVL_FCTR, \r\n" " B.OCPY_RATE_FCTR, \r\n" " B.SPED_FCTR, \r\n" " B.HDWY_FCTR, \r\n" " B.FRST_REGR_NMBR, \r\n" " B.FRST_RGST_DT, \r\n" " B.LAST_CRPR_NMBR, \r\n" " B.LAST_CRCT_DT, \r\n" " B.DEL_YN \r\n" " FROM TB_VDS_DTCT_MSTR A, \r\n" " TB_VDS_DTCT_SMTH_PARA B \r\n" " WHERE A.DTCT_NMBR = B.DTCT_NMBR \r\n" " ORDER BY CTLR_MNGM_NMBR \r\n"; try { TItsVds *pVds; TItsVdsDtct *pVdsDtct; FLists.Lock(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString; pVds = FLists.Find(CTLR_MNGM_NMBR); if (!pVds) continue; String DTCT_NMBR = pADO->FieldByName("DTCT_NMBR")->AsString; pVdsDtct = pVds->FSubLists.Find(DTCT_NMBR); if (!pVdsDtct) continue; TItsVdsDtctParam *pObj = new TItsVdsDtctParam(); pObj->CTLR_MNGM_NMBR = CTLR_MNGM_NMBR; pObj->DTCT_NMBR = DTCT_NMBR; pObj->SYST_KIND_DVSN = pADO->FieldByName("SYST_KIND_DVSN")->AsString; pObj->TFVL_FCTR = pADO->FieldByName("TFVL_FCTR")->AsString; pObj->OCPY_RATE_FCTR = pADO->FieldByName("OCPY_RATE_FCTR")->AsString; pObj->SPED_FCTR = pADO->FieldByName("SPED_FCTR")->AsString; pObj->HDWY_FCTR = pADO->FieldByName("HDWY_FCTR")->AsString; pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString; pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString; pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString; pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString; pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString; pVdsDtct->FParamLists.Push(pObj->SYST_KIND_DVSN, pObj); pObj->Completed = true; pObj->MEM_DEL = "N"; } } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDtctParamDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDtctParamDb", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::LoadFromDtctCndtDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.CTLR_MNGM_NMBR, \r\n" " A.DTCT_NMBR, \r\n" " B.SYST_KIND_DVSN, \r\n" " B.MAX_TFVL, \r\n" " B.MIN_TFVL, \r\n" " B.MAX_OCPY_RATE, \r\n" " B.MIN_OCPY_RATE, \r\n" " B.MAX_SPED, \r\n" " B.MIN_SPED, \r\n" " B.DEL_YN, \r\n" " B.FRST_REGR_NMBR, \r\n" " B.FRST_RGST_DT, \r\n" " B.LAST_CRPR_NMBR, \r\n" " B.LAST_CRCT_DT \r\n" " FROM TB_VDS_DTCT_MSTR A, \r\n" " TB_VDS_DTCT_RLBL_CNDT B \r\n" " WHERE A.DTCT_NMBR = B.DTCT_NMBR \r\n" " ORDER BY CTLR_MNGM_NMBR \r\n"; try { TItsVds *pVds; TItsVdsDtct *pVdsDtct; FLists.Lock(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString; pVds = FLists.Find(CTLR_MNGM_NMBR); if (!pVds) continue; String DTCT_NMBR = pADO->FieldByName("DTCT_NMBR")->AsString; pVdsDtct = pVds->FSubLists.Find(DTCT_NMBR); if (!pVdsDtct) continue; TItsVdsDtctCndt *pObj = new TItsVdsDtctCndt(); pObj->CTLR_MNGM_NMBR = CTLR_MNGM_NMBR; pObj->DTCT_NMBR = DTCT_NMBR; pObj->SYST_KIND_DVSN = pADO->FieldByName("SYST_KIND_DVSN")->AsString; pObj->MAX_TFVL = pADO->FieldByName("MAX_TFVL")->AsString; pObj->MIN_TFVL = pADO->FieldByName("MIN_TFVL")->AsString; pObj->MAX_OCPY_RATE = pADO->FieldByName("MAX_OCPY_RATE")->AsString; pObj->MIN_OCPY_RATE = pADO->FieldByName("MIN_OCPY_RATE")->AsString; pObj->MAX_SPED = pADO->FieldByName("MAX_SPED")->AsString; pObj->MIN_SPED = pADO->FieldByName("MIN_SPED")->AsString; pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString; pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString; pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString; pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString; pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString; pVdsDtct->FCndtLists.Push(pObj->SYST_KIND_DVSN, pObj); pObj->Completed = true; pObj->MEM_DEL = "N"; } } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDtctCndtDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::LoadFromDtctCndtDb", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::GetNextVdsId(String &ANewId, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT TO_NUMBER(CASE WHEN EXISTS (SELECT 1 FROM TB_VDS_CTLR) \r\n" " THEN (SELECT TRIM(MAX(TO_NUMBER(CTLR_MNGM_NMBR)) + 1) \r\n" " FROM TB_VDS_CTLR) \r\n" " ELSE '1' END) NEWID \r\n" " FROM DUAL \r\n"; ANewId = ""; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); ANewId = pADO->FieldByName("NEWID")->AsString; return true; } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::GetNextVdsId", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::GetNextVdsId", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return false; } //--------------------------------------------------------------------------- bool TItsVdsManager::GetNextVdsDtctId(String &ANewId, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT TO_NUMBER(CASE WHEN EXISTS (SELECT 1 FROM TB_VDS_DTCT_MSTR) \r\n" " THEN (SELECT TRIM(MAX(TO_NUMBER(DTCT_NMBR)) + 1) \r\n" " FROM TB_VDS_DTCT_MSTR) \r\n" " ELSE '1' END) NEWID \r\n" " FROM DUAL \r\n"; ANewId = ""; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); ANewId = pADO->FieldByName("NEWID")->AsString; return true; } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::GetNextVdsDtctId", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::GetNextVdsDtctId", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return false; } //--------------------------------------------------------------------------- bool TItsVdsManager::DeleteVds(TItsVds *AObj, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "UPDATE TB_VDS_CTLR \r\n" " SET DEL_YN = 'Y' \r\n" " WHERE CTLR_MNGM_NMBR = :p01 \r\n"; try { FLists.Lock(); 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_MNGM_NMBR; pADO->ExecSQL(); sQry = "DELETE TB_FCLT_INFR \r\n" " WHERE FCLT_ID = :p01 \r\n"; //" AND FCLT_TYPE = 'VDS' \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR; pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::DeleteVds", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::DeleteVds", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::DeleteVdsDtctSubTable(TItsVdsDtct *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 = "DELETE TB_VDS_DTCT_LINK_RLTN \r\n" " WHERE DTCT_NMBR = :p01 \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR; pADO->ExecSQL(); sQry = "DELETE TB_VDS_DTCT_RLBL_CNDT \r\n" " WHERE DTCT_NMBR = :p01 \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR; pADO->ExecSQL(); sQry = "DELETE TB_VDS_DTCT_SMTH_PARA \r\n" " WHERE DTCT_NMBR = :p01 \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR; pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::DeleteVdsDtctSubTable", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::DeleteVdsDtctSubTable", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::DeleteVdsDtct(TItsVdsDtct *AObj, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "UPDATE TB_VDS_DTCT_MSTR \r\n" " SET DEL_YN = 'Y' \r\n" " WHERE DTCT_NMBR = :p01 \r\n"; try { DeleteVdsDtctSubTable(AObj, ADbConn); 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->DTCT_NMBR; pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::DeleteVdsDtct", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::DeleteVdsDtct", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::SaveVdsDtct(TItsVdsDtct *AObj, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "MERGE INTO TB_VDS_DTCT_MSTR L \r\n" "USING (SELECT :p01 AS DTCT_NMBR, \r\n" " :p02 AS DTCT_TYPE_CD, \r\n" " :p03 AS STLN_DSTC, \r\n" " :p04 AS ISTL_LANE, \r\n" " :p05 AS DET_NMBR, \r\n" " :p06 AS SNST, \r\n" " :p07 AS DTCT_VALD_DSTC, \r\n" " :p08 AS MDVH_UPLM_LNGT, \r\n" " :p09 AS MDVH_LWLM_LNGT, \r\n" " :p10 AS USE_YN, \r\n" " :p11 AS CHNL_NMBR, \r\n" " :p12 AS DEL_YN \r\n" " FROM DUAL) M \r\n" " ON (L.DTCT_NMBR = M.DTCT_NMBR) \r\n" "WHEN MATCHED THEN \r\n" "UPDATE SET DTCT_TYPE_CD = M.DTCT_TYPE_CD, \r\n" " STLN_DSTC = M.STLN_DSTC, \r\n" " ISTL_LANE = M.ISTL_LANE, \r\n" " DET_NMBR = M.DET_NMBR, \r\n" " SNST = M.SNST, \r\n" " DTCT_VALD_DSTC = M.DTCT_VALD_DSTC, \r\n" " MDVH_UPLM_LNGT = M.MDVH_UPLM_LNGT, \r\n" " MDVH_LWLM_LNGT = M.MDVH_LWLM_LNGT, \r\n" " USE_YN = M.USE_YN, \r\n" " CHNL_NMBR = M.CHNL_NMBR, \r\n" " DEL_YN = M.DEL_YN \r\n" "WHEN NOT MATCHED THEN \r\n" "INSERT (DTCT_NMBR, DTCT_TYPE_CD, STLN_DSTC, \r\n" " ISTL_LANE, DET_NMBR, SNST, \r\n" " DTCT_VALD_DSTC, MDVH_UPLM_LNGT, \r\n" " MDVH_LWLM_LNGT, USE_YN, \r\n" " CHNL_NMBR, DEL_YN) \r\n" "VALUES (M.DTCT_NMBR, M.DTCT_TYPE_CD, M.STLN_DSTC, \r\n" " M.ISTL_LANE, M.DET_NMBR, M.SNST, \r\n" " M.DTCT_VALD_DSTC, M.MDVH_UPLM_LNGT, \r\n" " M.MDVH_LWLM_LNGT, M.USE_YN, \r\n" " M.CHNL_NMBR, M.DEL_YN) \r\n"; try { //°ü·ÃÁ¤º¸¸¦ ¸ðµÎ »èÁ¦ DeleteVdsDtctSubTable(AObj, ADbConn); 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->DTCT_NMBR; pADO->Parameters->ParamByName("p02")->Value = AObj->DTCT_TYPE_CD; pADO->Parameters->ParamByName("p03")->Value = AObj->STLN_DSTC; pADO->Parameters->ParamByName("p04")->Value = AObj->ISTL_LANE; pADO->Parameters->ParamByName("p05")->Value = AObj->DET_NMBR; pADO->Parameters->ParamByName("p06")->Value = AObj->SNST; pADO->Parameters->ParamByName("p07")->Value = AObj->DTCT_VALD_DSTC; pADO->Parameters->ParamByName("p08")->Value = AObj->MDVH_UPLM_LNGT; pADO->Parameters->ParamByName("p09")->Value = AObj->MDVH_LWLM_LNGT; pADO->Parameters->ParamByName("p10")->Value = AObj->USE_YN; pADO->Parameters->ParamByName("p11")->Value = AObj->CHNL_NMBR; pADO->Parameters->ParamByName("p12")->Value = AObj->DEL_YN; pADO->ExecSQL(); //¸µÅ©±¸¼ºÁ¤º¸ ÀÔ·Â sQry = "INSERT INTO TB_VDS_DTCT_LINK_RLTN (DTCT_NMBR, LINK_ID) \r\n" " VALUES (:p01, :p02 ) \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; FOR_STL(TItsVdsDtctLink *, pObj, AObj->FLinkLists) { pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR; pADO->Parameters->ParamByName("p02")->Value = pObj->LINK_ID; pADO->ExecSQL(); } //ÆòȰȭÆÄ¶ó¹ÌÅÍÁ¤º¸ ÀÔ·Â sQry = "INSERT INTO TB_VDS_DTCT_SMTH_PARA (DTCT_NMBR, \r\n" " SYST_KIND_DVSN, \r\n" " TFVL_FCTR, \r\n" " OCPY_RATE_FCTR, \r\n" " SPED_FCTR, \r\n" " HDWY_FCTR, \r\n" " DEL_YN ) \r\n" " VALUES (:p01, :p02, :p03, :p04, :p05, :p06, :p07 ) \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; FOR_STL(TItsVdsDtctParam *, pObj, AObj->FParamLists) { pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR; pADO->Parameters->ParamByName("p02")->Value = pObj->SYST_KIND_DVSN; pADO->Parameters->ParamByName("p03")->Value = pObj->TFVL_FCTR; pADO->Parameters->ParamByName("p04")->Value = pObj->OCPY_RATE_FCTR; pADO->Parameters->ParamByName("p05")->Value = pObj->SPED_FCTR; pADO->Parameters->ParamByName("p06")->Value = pObj->HDWY_FCTR; pADO->Parameters->ParamByName("p07")->Value = pObj->DEL_YN; pADO->ExecSQL(); } //½Å·ÚµµÁ¶°ÇÁ¤º¸ ÀÔ·Â sQry = "INSERT INTO TB_VDS_DTCT_RLBL_CNDT (DTCT_NMBR, \r\n" " SYST_KIND_DVSN, \r\n" " MAX_TFVL, \r\n" " MIN_TFVL, \r\n" " MAX_OCPY_RATE, \r\n" " MIN_OCPY_RATE, \r\n" " MAX_SPED, \r\n" " MIN_SPED, \r\n" " DEL_YN ) \r\n" " VALUES (:p01,:p02,:p03,:p04,:p05,:p06,:p07,:p08,:p09 ) \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; FOR_STL(TItsVdsDtctCndt *, pObj, AObj->FCndtLists) { pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR; pADO->Parameters->ParamByName("p02")->Value = pObj->SYST_KIND_DVSN; pADO->Parameters->ParamByName("p03")->Value = pObj->MAX_TFVL; pADO->Parameters->ParamByName("p04")->Value = pObj->MIN_TFVL; pADO->Parameters->ParamByName("p05")->Value = pObj->MAX_OCPY_RATE; pADO->Parameters->ParamByName("p06")->Value = pObj->MIN_OCPY_RATE; pADO->Parameters->ParamByName("p07")->Value = pObj->MAX_SPED; pADO->Parameters->ParamByName("p08")->Value = pObj->MIN_SPED; pADO->Parameters->ParamByName("p09")->Value = pObj->DEL_YN; pADO->ExecSQL(); } return true; } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::SaveVdsDtct", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::SaveVdsDtct", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::UpdateVds(TItsVds *AObj, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "UPDATE TB_VDS_CTLR \r\n" " SET CTLR_TYPE_CD = :p02, \r\n" " VALD_YN = :p03, \r\n" " X_CRDN = :p04, \r\n" " Y_CRDN = :p05, \r\n" " LCTN = :p06, \r\n" " TRMN_IP = :p07, \r\n" " TRMN_PORT = :p08, \r\n" " CTLR_CLCT_CYCL = :p09, \r\n" " CTLR_STTS_CYCL = :p10, \r\n" " LOOP_BORD_NUM = :p11, \r\n" " DEL_YN = :p12, \r\n" " VDS_CTLR_ID = :p13 \r\n" " WHERE CTLR_MNGM_NMBR = :p01 \r\n"; try { FLists.Lock(); 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_MNGM_NMBR; pADO->Parameters->ParamByName("p02")->Value = AObj->CTLR_TYPE_CD; pADO->Parameters->ParamByName("p03")->Value = AObj->VALD_YN; pADO->Parameters->ParamByName("p04")->Value = AObj->X_CRDN; pADO->Parameters->ParamByName("p05")->Value = AObj->Y_CRDN; pADO->Parameters->ParamByName("p06")->Value = AObj->LCTN; pADO->Parameters->ParamByName("p07")->Value = AObj->TRMN_IP; pADO->Parameters->ParamByName("p08")->Value = AObj->TRMN_PORT; pADO->Parameters->ParamByName("p09")->Value = AObj->CTLR_CLCT_CYCL; pADO->Parameters->ParamByName("p10")->Value = AObj->CTLR_STTS_CYCL; pADO->Parameters->ParamByName("p11")->Value = AObj->LOOP_BORD_NUM; pADO->Parameters->ParamByName("p12")->Value = AObj->DEL_YN; pADO->Parameters->ParamByName("p13")->Value = AObj->VDS_CTLR_ID; pADO->ExecSQL(); sQry = "UPDATE TB_FCLT_INFR \r\n" " SET FCLT_LCTN = :p02 \r\n" " WHERE FCLT_ID = :p01 \r\n"; //" AND FCLT_TYPE = 'VDS' \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR; pADO->Parameters->ParamByName("p02")->Value = AObj->LCTN; pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::UpdateVds", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::UpdateVds", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TItsVdsManager::InsertVds(TItsVds *AObj, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "INSERT INTO TB_VDS_CTLR(CTLR_MNGM_NMBR, CTLR_TYPE_CD, VALD_YN, X_CRDN, Y_CRDN, \r\n" " LCTN, TRMN_IP, TRMN_PORT, CTLR_CLCT_CYCL, CTLR_STTS_CYCL, \r\n" " LOOP_BORD_NUM, DEL_YN, VDS_CTLR_ID) \r\n" " VALUES(:p01, :p02, :p03, :p04, :p05, \r\n" " :p06, :p07, :p08, :p09, :p10, \r\n" " :p11, :p12, :p13) \r\n"; try { FLists.Lock(); 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_MNGM_NMBR; pADO->Parameters->ParamByName("p02")->Value = AObj->CTLR_TYPE_CD; pADO->Parameters->ParamByName("p03")->Value = AObj->VALD_YN; pADO->Parameters->ParamByName("p04")->Value = AObj->X_CRDN; pADO->Parameters->ParamByName("p05")->Value = AObj->Y_CRDN; pADO->Parameters->ParamByName("p06")->Value = AObj->LCTN; pADO->Parameters->ParamByName("p07")->Value = AObj->TRMN_IP; pADO->Parameters->ParamByName("p08")->Value = AObj->TRMN_PORT; pADO->Parameters->ParamByName("p09")->Value = AObj->CTLR_CLCT_CYCL; pADO->Parameters->ParamByName("p10")->Value = AObj->CTLR_STTS_CYCL; pADO->Parameters->ParamByName("p11")->Value = AObj->LOOP_BORD_NUM; pADO->Parameters->ParamByName("p12")->Value = AObj->DEL_YN; pADO->Parameters->ParamByName("p13")->Value = AObj->VDS_CTLR_ID; pADO->ExecSQL(); sQry = "INSERT INTO TB_FCLT_INFR(FCLT_ID, FCLT_TYPE, FCLT_LCTN, RSCE_YN, DEL_YN, USE_YEAR, AMT) \r\n" " VALUES(:p01, 'VDS', :p03, 'N', 'N', '0', '0') \r\n"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR; pADO->Parameters->ParamByName("p03")->Value = AObj->LCTN; pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::InsertVds", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG("TItsVdsManager::InsertVds", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return true; } //---------------------------------------------------------------------------