//--------------------------------------------------------------------------- #pragma hdrstop #include "CDSVmsIxrF.h" #include "ITS_OPLibF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- TVmsIxrManager *VmsIxrManager = NULL; //--------------------------------------------------------------------------- TVmsIxrManager::TVmsIxrManager() { } //--------------------------------------------------------------------------- TVmsIxrManager::~TVmsIxrManager() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- bool TVmsIxrManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; FLists.Lock(); try { FLists.RemoveAll(); } __finally { FLists.UnLock(); } sQry = "SELECT A.* \r\n" " FROM TB_VMS_RLTN_IXR A \r\n" " ORDER BY A.VMS_CTLR_NMBR, A.ORD \r\n"; FLists.Lock(); 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()) { String VMS_CTLR_NMBR = pADO->FieldByName("VMS_CTLR_NMBR")->AsString; TVmsIxr *pVms = FLists.Find(VMS_CTLR_NMBR); if (!pVms) { pVms = new TVmsIxr(); pVms->VMS_CTLR_NMBR = VMS_CTLR_NMBR; FLists.Push(VMS_CTLR_NMBR, pVms); } if (!pVms) { continue; } TVmsRltnIxr *pObj = new TVmsRltnIxr(); pObj->VMS_CTLR_NMBR = VMS_CTLR_NMBR; pObj->SGNL_IXR_NMBR = pADO->FieldByName("SGNL_IXR_NMBR")->AsString; pObj->ORD = pADO->FieldByName("ORD")->AsInteger; pVms->FLists.Push(pObj->ORD, pObj); } } catch(EDatabaseError &E) { DBERRORMSG("VMS ±ä±ÞÂ÷·®¿ì¼±½ÅÈ£ ±³Â÷·Î Á¤º¸ Á¶È¸", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("VMS ±ä±ÞÂ÷·®¿ì¼±½ÅÈ£ ±³Â÷·Î Á¤º¸ Á¶È¸", 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 TVmsIxrManager::DeleteVmsIxr(TVmsIxr *AObj, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; try { String VMS_CTLR_NMBR = AObj->VMS_CTLR_NMBR; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); sQry = "DELETE FROM TB_VMS_RLTN_IXR WHERE VMS_CTLR_NMBR = :p01"; pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = VMS_CTLR_NMBR; pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { DBERRORLOG("VMS ±ä±ÞÂ÷·®¿ì¼±½ÅÈ£ ±³Â÷·Î »èÁ¦", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORLOG("VMS ±ä±ÞÂ÷·®¿ì¼±½ÅÈ£ ±³Â÷·Î »èÁ¦", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TVmsIxrManager::MergeVmsIxr(TVmsIxr *AObj, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; int ii; try { try { DeleteVmsIxr(AObj, ADbConn); sQry = "INSERT INTO TB_VMS_RLTN_IXR(VMS_CTLR_NMBR, SGNL_IXR_NMBR, ORD) VALUES(:p01, :p02, :p03)"; pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; ii = 0; FOR_STL(TVmsRltnIxr *, pIxr, AObj->FLists) { pIxr->ORD = ii+1; pADO->Parameters->ParamByName("p01")->Value = pIxr->VMS_CTLR_NMBR; pADO->Parameters->ParamByName("p02")->Value = pIxr->SGNL_IXR_NMBR; pADO->Parameters->ParamByName("p03")->Value = String(pIxr->ORD); pADO->ExecSQL(); ii++; } return true; } catch(EDatabaseError &E) { DBERRORLOG("VMS ±ä±ÞÂ÷·®¿ì¼±½ÅÈ£ ±³Â÷·Î Á¤º¸ÀúÀå", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORLOG("VMS ±ä±ÞÂ÷·®¿ì¼±½ÅÈ£ ±³Â÷·Î Á¤º¸ÀúÀå", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //---------------------------------------------------------------------------