//--------------------------------------------------------------------------- #pragma hdrstop #include "CDSVmsIfscF.h" #include "VmsCommonLibF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- TVmsIfsc::TVmsIfsc() { } //--------------------------------------------------------------------------- TVmsIfsc::~TVmsIfsc() { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsSect::TVmsSect() { } //--------------------------------------------------------------------------- TVmsSect::~TVmsSect() { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsRltnSect::TVmsRltnSect() { } //--------------------------------------------------------------------------- TVmsRltnSect::~TVmsRltnSect() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsIfscManager *VmsIfscManager = NULL; //--------------------------------------------------------------------------- TVmsIfscManager::TVmsIfscManager() { } //--------------------------------------------------------------------------- TVmsIfscManager::~TVmsIfscManager() { FLists.RemoveAll(); FRltnLists.RemoveAll(); } //--------------------------------------------------------------------------- bool TVmsIfscManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; FLists.Lock(); FLists.RemoveAll(); sQry = "SELECT A.VMS_SECT_ID, \r\n" " A.VMS_SECT_NM, \r\n" " A.VMS_SECT_ENG_NM, \r\n" " A.VMS_DSPL_STRT_NM, \r\n" " A.VMS_DSPL_END_NM, \r\n" " A.VMS_DSPL_SECT_NM, \r\n" " A.ROAD_GRD \r\n" " FROM TB_VMS_SECT A \r\n" " ORDER BY A.VMS_SECT_ID \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->Open(); for( ; !pADO->Eof; pADO->Next()) { TVmsIfsc *pObj = new TVmsIfsc(); pObj->VMS_SECT_ID = pADO->FieldByName("VMS_SECT_ID")->AsString; pObj->VMS_SECT_NM = pADO->FieldByName("VMS_SECT_NM")->AsString; pObj->VMS_SECT_ENG_NM = pADO->FieldByName("VMS_SECT_ENG_NM")->AsString; pObj->VMS_DSPL_STRT_NM = pADO->FieldByName("VMS_DSPL_STRT_NM")->AsString; pObj->VMS_DSPL_END_NM = pADO->FieldByName("VMS_DSPL_END_NM")->AsString; pObj->VMS_DSPL_SECT_NM = pADO->FieldByName("VMS_DSPL_SECT_NM")->AsString; pObj->ROAD_GRD = pADO->FieldByName("ROAD_GRD")->AsString; FLists.Push(pObj->VMS_SECT_ID, pObj); } } catch(EDatabaseError &E) { DBERRORMSG("TVmsIfscManager::LoadFromDb", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TVmsIfscManager::LoadFromDb", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); } return LoadSubFromDb(ADbConn); } //--------------------------------------------------------------------------- bool TVmsIfscManager::LoadSubFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT A.VMS_CTLR_ID, A.SN, \r\n" " A.VMS_SECT_ID, A.VMS_DTUR_SECT_ID \r\n" " FROM TB_VMS_VMS_SECT A, \r\n" " TB_VMS_SECT B \r\n" " WHERE A.VMS_SECT_ID = B.VMS_SECT_ID \r\n" " ORDER BY A.VMS_CTLR_ID, A.SN \r\n"; FRltnLists.Lock(); FRltnLists.RemoveAll(); try { 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()) { TVmsSect *pSect = new TVmsSect(); pSect->VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString; pSect->SN = pADO->FieldByName("SN")->AsInteger; pSect->VMS_SECT_ID = pADO->FieldByName("VMS_SECT_ID")->AsString; pSect->VMS_DTUR_SECT_ID = pADO->FieldByName("VMS_DTUR_SECT_ID")->AsString; TVmsRltnSect *pRltnSect = FRltnLists.Find(pSect->VMS_CTLR_ID); if (pRltnSect == NULL) { pRltnSect = new TVmsRltnSect(); pRltnSect->VMS_CTLR_ID = pSect->VMS_CTLR_ID; FRltnLists.Push(pRltnSect->VMS_CTLR_ID, pRltnSect); } pRltnSect->FLists.Push(pSect->SN, pSect); } } catch(EDatabaseError &E) { DBERRORMSG("TVmsIfscManager::LoadSubFromDb", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TVmsIfscManager::LoadSubFromDb", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } FRltnLists.UnLock(); } return true; } //---------------------------------------------------------------------------