123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350 |
- //---------------------------------------------------------------------------
- #pragma hdrstop
- #include "ITSDbF.h"
- #include "AppGlobalF.h"
- #include "CDSItsRoadInfoF.h"
- //---------------------------------------------------------------------------
- String REGCODE = "355";
- String REGNAME = "±¸¹Ì½Ã";
- #pragma package(smart_init)
- String __fastcall STCodeCondition::ToSQLOrString(String strField)
- {
- String strRet;
- int nCount = 0;
- if(true == bUse)
- {
- strRet += "( ";
- vector<String>::iterator it, itEnd = Codes.end();
- for(it = Codes.begin(); it != itEnd; ++it)
- {
- if(Codes.begin() != it)
- {
- strRet += " or ";
- }
- if(nCount >= 100)
- {
- strRet += " \n";
- nCount = 0;
- }
- strRet += strField + " = '";
- strRet += *it;
- strRet += "'";
- }
- strRet += ") ";
- }
- return strRet;
- }
- //------------------------------------------------------------------------------
- String __fastcall STCodeCondition::ToSQLInString(String strField)
- {
- String strRet;
- if(true == bUse)
- {
- if(strField.IsEmpty() == false)
- {
- strRet.sprintf(L" %s IN ( ", strField);
- }
- else
- {
- strRet = " IN ( ";
- }
- vector<String>::iterator it, itEnd = Codes.end();
- for(it = Codes.begin(); it != itEnd; ++it)
- {
- if(Codes.begin() != it)
- {
- strRet += ", ";
- }
- strRet += "'";
- strRet += *it;
- strRet += "'";
- }
- strRet += ") ";
- }
- return strRet;
- };
- //------------------------------------------------------------------------------
- TRLink::TRLink()
- {
- FShow = true;
- }
- //---------------------------------------------------------------------------
- void TRLink::Clear()
- {
- }
- //---------------------------------------------------------------------------
- TRLink::~TRLink()
- {
- }
- //---------------------------------------------------------------------------
- TRRoad::TRRoad()
- {
- FShow = true;
- }
- //---------------------------------------------------------------------------
- void TRRoad::Clear()
- {
- }
- //---------------------------------------------------------------------------
- TRRoad::~TRRoad()
- {
- }
- //---------------------------------------------------------------------------
- TRSido::TRSido()
- {
- FShow = true;
- }
- //---------------------------------------------------------------------------
- void TRSido::Clear()
- {
- }
- //---------------------------------------------------------------------------
- TRSido::~TRSido()
- {
- }
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- TRLinkManager *RLinkManager = NULL;
- //---------------------------------------------------------------------------
- /*
- * User Manager
- */
- TRLinkManager::TRLinkManager()
- {
- FLoadLink = false;
- }
- //---------------------------------------------------------------------------
- TRLinkManager::~TRLinkManager()
- {
- FLists.RemoveAll();
- }
- //---------------------------------------------------------------------------
- bool TRLinkManager::LoadSido(TADOConnection *ADbConn/*=NULL*/)
- {
- #if 0
- String sQry;
- TADOQuery *pADO = NULL;
- String sSido = REGCODE;
- sQry = "SELECT VALUE, CODE, PCODE "
- " FROM CODEDEFINE "
- " WHERE PCODEKIND = 'CTY' "
- " AND CODEKIND = 'RGN' "
- " AND PCODE = " + sSido +
- " AND USEYN = 1 "
- " ORDER BY VALUE ";
- 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->Prepared = true;
- pADO->Open();
- for( ; !pADO->Eof; pADO->Next())
- {
- TRSido *pObj = new TRSido();
- pObj->LINKID = pADO->FieldByName("CODE")->AsString;
- pObj->NAME = pADO->FieldByName("VALUE")->AsString;
- FLists.Push(pObj->LINKID, pObj);
- }
- }
- catch(EDatabaseError &E)
- {
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &exception)
- {
- throw Exception(String(exception.ClassName()) + exception.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- FLists.UnLock();
- }
- #else
- try
- {
- FLists.Lock();
- FLists.RemoveAll();
- TRSido *pObj = new TRSido();
- pObj->LINKID = REGCODE;
- pObj->NAME = REGNAME;
- FLists.Push(pObj->LINKID, pObj);
- }
- __finally
- {
- FLists.UnLock();
- }
- #endif
- return true;
- }
- //---------------------------------------------------------------------------
- bool TRLinkManager::LoadRoad(TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- String sSido = "8";
- sQry = "SELECT SUBSTR(A.LINK_ID, 1, 3) AS LINKID, \r\n"
- " A.ROAD_NAME AS ROADNAME \r\n"
- " FROM TB_LINK A \r\n"
- " WHERE SUBSTR(A.LINK_ID, 1, 3) = '" + REGCODE + "' \r\n"
- " GROUP BY SUBSTR(A.LINK_ID, 1, 3), ROAD_NAME \r\n";
- TRSido *pSido;
- 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();
- for( ; !pADO->Eof; pADO->Next())
- {
- String sLinkId = pADO->FieldByName("LINKID")->AsString;
- pSido = FLists.Find(sLinkId);
- if (!pSido) continue;
- TRRoad *pObj = new TRRoad();
- pObj->LINKID = sLinkId;
- pObj->NAME = pADO->FieldByName("ROADNAME")->AsString;
- pSido->FRoads.Push(pObj->NAME, pObj);
- }
- }
- catch(EDatabaseError &E)
- {
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &exception)
- {
- throw Exception(String(exception.ClassName()) + exception.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool TRLinkManager::LoadLink(TADOConnection *ADbConn/*=NULL*/)
- {
- if (FLoadLink) return true;
- String sQry;
- TADOQuery *pADO = NULL;
- String sSido = REGCODE;
- sQry = "SELECT SUBSTR(A.LINK_ID, 1, 3) AS SIDOID, \r\n"
- " A.ROAD_NAME AS ROADNAME, A.LINK_ID AS LINKID, \r\n"
- " C.NODE_NAME AS STNODENAME, \r\n"
- " D.NODE_NAME AS EDNODENAME \r\n"
- " FROM TB_LINK A, \r\n"
- " TB_NODE C, TB_NODE D \r\n"
- " WHERE SUBSTR(A.LINK_ID, 1, 3) = '" + REGCODE + "' \r\n"
- " AND A.F_NODE_ID = C.NODE_ID \r\n"
- " AND A.T_NODE_ID = D.NODE_ID \r\n"
- " ORDER BY A.ROAD_NAME, A.LINK_ID \r\n";
- TRSido *pSido;
- TRRoad *pRoad;
- 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();
- for( ; !pADO->Eof; pADO->Next())
- {
- String sSidoId = pADO->FieldByName("SIDOID")->AsString;
- pSido = FLists.Find(sSidoId);
- if (!pSido) continue;
- String sRoadName = pADO->FieldByName("ROADNAME")->AsString;
- pRoad = pSido->FRoads.Find(sRoadName);
- if (!pRoad) continue;
- TRLink *pObj = new TRLink();
- pObj->LINKID = pADO->FieldByName("LINKID")->AsString;
- pObj->STNODENAME = pADO->FieldByName("STNODENAME")->AsString;
- pObj->EDNODENAME = pADO->FieldByName("EDNODENAME")->AsString;
- pRoad->FLinks.Push(pObj->LINKID, pObj);
- }
- }
- catch(EDatabaseError &E)
- {
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &exception)
- {
- throw Exception(String(exception.ClassName()) + exception.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- FLoadLink = true;
- return true;
- }
- //---------------------------------------------------------------------------
|