CDSWCamCtlrF.cpp 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSWCamCtlrF.h"
  4. #include "AppGlobalF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. //---------------------------------------------------------------------------
  8. TWCamCtlr::TWCamCtlr()
  9. {
  10. }
  11. //---------------------------------------------------------------------------
  12. TWCamCtlr::~TWCamCtlr()
  13. {
  14. }
  15. //---------------------------------------------------------------------------
  16. //---------------------------------------------------------------------------
  17. TWCamCtlrManager *WCamCtlrManager = NULL;
  18. //---------------------------------------------------------------------------
  19. TWCamCtlrManager::TWCamCtlrManager()
  20. {
  21. FImgStream = NULL;
  22. }
  23. //---------------------------------------------------------------------------
  24. TWCamCtlrManager::~TWCamCtlrManager()
  25. {
  26. FLists.RemoveAll();
  27. if (FImgStream) delete FImgStream;
  28. FImgStream = NULL;
  29. }
  30. //---------------------------------------------------------------------------
  31. bool TWCamCtlrManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  32. {
  33. String sQry;
  34. TADOQuery *pADO = NULL;
  35. sQry = "SELECT A.* \r\n"
  36. " FROM TB_WCAM_CTLR A \r\n";
  37. " WHERE A.DEL_YN = 'N' \r\n";
  38. FLists.Lock();
  39. try
  40. {
  41. FLists.RemoveAll();
  42. try
  43. {
  44. pADO = new TADOQuery(NULL);
  45. pADO->Close();
  46. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  47. pADO->SQL->Clear();
  48. pADO->SQL->Text = sQry;
  49. pADO->Prepared = true;
  50. pADO->Open();
  51. for( ; !pADO->Eof; pADO->Next())
  52. {
  53. TWCamCtlr *pObj = new TWCamCtlr();
  54. pObj->WCAM_CTLR_NMBR = pADO->FieldByName("WCAM_CTLR_NMBR")->AsString;
  55. pObj->WCAM_CTLR_ID = pADO->FieldByName("WCAM_CTLR_ID")->AsString.Trim();
  56. pObj->WCAM_NM = pADO->FieldByName("WCAM_NM")->AsString.Trim();
  57. pObj->WCAM_CTLR_IP = pADO->FieldByName("WCAM_CTLR_IP")->AsString.Trim();
  58. pObj->WCAM_CTLR_PORT = pADO->FieldByName("WCAM_CTLR_PORT")->AsInteger;
  59. pObj->WCAM_CTLR_LOCAL_NO = pADO->FieldByName("WCAM_CTLR_LOCAL_NO")->AsInteger;
  60. pObj->WCAM_TYPE_CD = pADO->FieldByName("WCAM_TYPE_CD")->AsString.Trim();
  61. pObj->ISTL_LCTN_NM = pADO->FieldByName("ISTL_LCTN_NM")->AsString.Trim();
  62. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsFloat;
  63. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsFloat;
  64. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  65. pObj->STRM_SVR_IP = pADO->FieldByName("STRM_SVR_IP")->AsString.Trim();
  66. pObj->STRM_SVR_PORT = pADO->FieldByName("STRM_SVR_PORT")->AsString.Trim();
  67. pObj->STRM_SESN_NM = pADO->FieldByName("STRM_SESN_NM")->AsString.Trim();
  68. pObj->STRM_RTSP_ADDR = pADO->FieldByName("STRM_RTSP_ADDR")->AsString.Trim();
  69. pObj->STRM_RTMP_ADDR = pADO->FieldByName("STRM_RTMP_ADDR")->AsString.Trim();
  70. pObj->STRM_HTTP_ADDR = pADO->FieldByName("STRM_HTTP_ADDR")->AsString.Trim();
  71. pObj->STRM_STOR_ADDR = pADO->FieldByName("STRM_STOR_ADDR")->AsString.Trim();
  72. pObj->CMRA_PORT = pADO->FieldByName("CMRA_PORT")->AsInteger;
  73. pObj->CMRA_ID = pADO->FieldByName("CMRA_ID")->AsString.Trim();
  74. pObj->CMRA_PSWD = pADO->FieldByName("CMRA_PSWD")->AsString.Trim();
  75. pObj->CMRA_CHNL = pADO->FieldByName("CMRA_CHNL")->AsInteger;
  76. pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString.Trim();
  77. pObj->ISTL_LCTN_ADDR = pADO->FieldByName("ISTL_LCTN_ADDR")->AsString.Trim();
  78. FLists.Push(pObj->WCAM_CTLR_NMBR, pObj);
  79. pObj->Completed = true;
  80. }
  81. }
  82. catch(EDatabaseError &E)
  83. {
  84. DBERRORMSG("TWCamCtlrManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
  85. throw Exception(String(E.ClassName()) + E.Message);
  86. }
  87. catch(Exception &e)
  88. {
  89. DBERRORMSG("TWCamCtlrManager::LoadFromDb", String(e.ClassName()), e.Message, sQry);
  90. throw Exception(String(e.ClassName()) + e.Message);
  91. }
  92. }
  93. __finally
  94. {
  95. if (pADO)
  96. {
  97. pADO->Close();
  98. delete pADO;
  99. }
  100. FLists.UnLock();
  101. }
  102. return LoadPreSet(ADbConn);
  103. }
  104. //---------------------------------------------------------------------------
  105. bool TWCamCtlrManager::LoadStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  106. {
  107. String sQry;
  108. TADOQuery *pADO = NULL;
  109. sQry = "SELECT * \r\n"
  110. " FROM TB_WCAM_CTLR_STTS A, \r\n"
  111. " TB_WCAM_CTLR B \r\n"
  112. " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n"
  113. " AND A.UPDT_DT >= TO_CHAR(SYSDATE-2/1440, 'YYYYMMDDHH24MISS') \r\n";
  114. FLists.Lock();
  115. try
  116. {
  117. FOR_STL(TWCamCtlr*, pTmp, FLists)
  118. {
  119. pTmp->STATE.Comm = wcam_error;
  120. }
  121. TWCamCtlr *pObj = NULL;
  122. try
  123. {
  124. int nORD;
  125. pADO = new TADOQuery(NULL);
  126. pADO->Close();
  127. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  128. pADO->SQL->Clear();
  129. pADO->SQL->Text = sQry;
  130. pADO->Prepared = true;
  131. pADO->Open();
  132. for( ; !pADO->Eof; pADO->Next())
  133. {
  134. String WCAM_CTLR_NMBR = pADO->FieldByName("WCAM_CTLR_NMBR")->AsString;
  135. pObj = FLists.Find(WCAM_CTLR_NMBR);
  136. if (!pObj) continue;
  137. String UPDT_DT = pADO->FieldByName("UPDT_DT")->AsString;
  138. String CMNC_STTS_CD = pADO->FieldByName("CMNC_STTS_CD")->AsString;
  139. if (CMNC_STTS_CD != "CMS0")
  140. {
  141. //Åë½ÅÀå¾Ö
  142. continue;
  143. }
  144. pObj->STATE.Comm = (CMNC_STTS_CD == "CMS0") ? wcam_normal : wcam_error;
  145. }
  146. }
  147. catch(EDatabaseError &E)
  148. {
  149. DBERRORLOG("TWCamCtlrManager::LoadStatusFromDb", String(E.ClassName()), E.Message, sQry);
  150. throw Exception(String(E.ClassName()) + E.Message);
  151. }
  152. catch(Exception &e)
  153. {
  154. DBERRORLOG("TWCamCtlrManager::LoadStatusFromDb", String(e.ClassName()), e.Message, sQry);
  155. throw Exception(String(e.ClassName()) + e.Message);
  156. }
  157. }
  158. __finally
  159. {
  160. FLists.UnLock();
  161. if (pADO)
  162. {
  163. pADO->Close();
  164. delete pADO;
  165. }
  166. }
  167. return true;
  168. }
  169. //---------------------------------------------------------------------------
  170. bool TWCamCtlrManager::DeleteWCam(TWCamCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  171. {
  172. String sQry;
  173. TADOQuery *pADO = NULL;
  174. sQry = "UPDATE TB_WCAM_CTLR \r\n"
  175. " SET DEL_YN = 'Y' \r\n"
  176. " WHERE WCAM_CTLR_NMBR = :p01 \r\n";
  177. try
  178. {
  179. try
  180. {
  181. pADO = new TADOQuery(NULL);
  182. pADO->Close();
  183. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  184. pADO->SQL->Clear();
  185. pADO->SQL->Text = sQry;
  186. pADO->Parameters->ParamByName("p01")->Value = AObj->WCAM_CTLR_NMBR;
  187. pADO->ExecSQL();
  188. sQry = "DELETE TB_FCLT_INFR \r\n"
  189. " WHERE FCLT_ID = :p01 \r\n";
  190. pADO->SQL->Clear();
  191. pADO->SQL->Text = sQry;
  192. pADO->Parameters->ParamByName("p01")->Value = AObj->WCAM_CTLR_ID;
  193. pADO->ExecSQL();
  194. return true;
  195. }
  196. catch(EDatabaseError &E)
  197. {
  198. DBERRORLOG("TWCamCtlrManager::DeleteWCam", String(E.ClassName()), E.Message, sQry);
  199. throw Exception(String(E.ClassName()) + E.Message);
  200. }
  201. catch(Exception &e)
  202. {
  203. DBERRORLOG("TWCamCtlrManager::DeleteWCam", String(e.ClassName()), e.Message, sQry);
  204. throw Exception(String(e.ClassName()) + e.Message);
  205. }
  206. }
  207. __finally
  208. {
  209. if (pADO)
  210. {
  211. pADO->Close();
  212. delete pADO;
  213. }
  214. }
  215. return true;
  216. }
  217. //---------------------------------------------------------------------------
  218. bool TWCamCtlrManager::InsertWCam(TWCamCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  219. {
  220. return MergeWCam(AObj, ADbConn);
  221. }
  222. //---------------------------------------------------------------------------
  223. bool TWCamCtlrManager::UpdateWCam(TWCamCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  224. {
  225. return MergeWCam(AObj, ADbConn);
  226. }
  227. //---------------------------------------------------------------------------
  228. bool TWCamCtlrManager::MergeWCam(TWCamCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  229. {
  230. String sQry;
  231. TADOQuery *pADO = NULL;
  232. sQry = "MERGE INTO TB_WCAM_CTLR L \r\n"
  233. "USING (SELECT :p01 AS WCAM_CTLR_NMBR, \r\n"
  234. " :p02 AS WCAM_CTLR_ID, \r\n"
  235. " :p03 AS WCAM_NM, \r\n"
  236. " :p04 AS WCAM_CTLR_IP, \r\n"
  237. " :p05 AS WCAM_CTLR_PORT, \r\n"
  238. " :p06 AS WCAM_CTLR_LOCAL_NO, \r\n"
  239. " :p07 AS WCAM_TYPE_CD, \r\n"
  240. " :p08 AS ISTL_LCTN_NM, \r\n"
  241. " :p09 AS X_CRDN, \r\n"
  242. " :p10 AS Y_CRDN, \r\n"
  243. " :p11 AS DEL_YN, \r\n"
  244. " :p12 AS STRM_SVR_IP, \r\n"
  245. " :p13 AS STRM_SVR_PORT, \r\n"
  246. " :p14 AS STRM_SESN_NM, \r\n"
  247. " :p15 AS STRM_RTSP_ADDR, \r\n"
  248. " :p16 AS STRM_RTMP_ADDR, \r\n"
  249. " :p17 AS STRM_HTTP_ADDR, \r\n"
  250. " :p18 AS STRM_STOR_ADDR, \r\n"
  251. " :p19 AS CMRA_PORT, \r\n"
  252. " :p20 AS CMRA_ID, \r\n"
  253. " :p21 AS CMRA_PSWD, \r\n"
  254. " :p22 AS CMRA_CHNL, \r\n"
  255. " :p23 AS LINK_ID, \r\n"
  256. " :p24 AS ISTL_LCTN_ADDR \r\n"
  257. " FROM DUAL) M \r\n"
  258. " ON (L.WCAM_CTLR_NMBR = M.WCAM_CTLR_NMBR) \r\n"
  259. "WHEN MATCHED THEN \r\n"
  260. " UPDATE SET L.WCAM_CTLR_ID = M.WCAM_CTLR_ID, \r\n"
  261. " L.WCAM_NM = M.WCAM_NM, \r\n"
  262. " L.WCAM_CTLR_IP = M.WCAM_CTLR_IP, \r\n"
  263. " L.WCAM_CTLR_PORT = M.WCAM_CTLR_PORT, \r\n"
  264. " L.WCAM_CTLR_LOCAL_NO = M.WCAM_CTLR_LOCAL_NO, \r\n"
  265. " L.WCAM_TYPE_CD = M.WCAM_TYPE_CD, \r\n"
  266. " L.ISTL_LCTN_NM = M.ISTL_LCTN_NM, \r\n"
  267. " L.X_CRDN = M.X_CRDN, \r\n"
  268. " L.Y_CRDN = M.Y_CRDN, \r\n"
  269. " L.DEL_YN = M.DEL_YN, \r\n"
  270. " L.STRM_SVR_IP = M.STRM_SVR_IP, \r\n"
  271. " L.STRM_SVR_PORT = M.STRM_SVR_PORT, \r\n"
  272. " L.STRM_SESN_NM = M.STRM_SESN_NM, \r\n"
  273. " L.STRM_RTSP_ADDR = M.STRM_RTSP_ADDR, \r\n"
  274. " L.STRM_RTMP_ADDR = M.STRM_RTMP_ADDR, \r\n"
  275. " L.STRM_HTTP_ADDR = M.STRM_HTTP_ADDR, \r\n"
  276. " L.STRM_STOR_ADDR = M.STRM_STOR_ADDR, \r\n"
  277. " L.CMRA_PORT = M.CMRA_PORT, \r\n"
  278. " L.CMRA_ID = M.CMRA_ID, \r\n"
  279. " L.CMRA_PSWD = M.CMRA_PSWD, \r\n"
  280. " L.CMRA_CHNL = M.CMRA_CHNL, \r\n"
  281. " L.LINK_ID = M.LINK_ID, \r\n"
  282. " L.ISTL_LCTN_ADDR = M.ISTL_LCTN_ADDR \r\n"
  283. "WHEN NOT MATCHED THEN \r\n"
  284. " INSERT (WCAM_CTLR_NMBR, \r\n"
  285. " WCAM_CTLR_ID, \r\n"
  286. " WCAM_NM, \r\n"
  287. " WCAM_CTLR_IP, \r\n"
  288. " WCAM_CTLR_PORT, \r\n"
  289. " WCAM_CTLR_LOCAL_NO, \r\n"
  290. " WCAM_TYPE_CD, \r\n"
  291. " ISTL_LCTN_NM, \r\n"
  292. " X_CRDN, \r\n"
  293. " Y_CRDN, \r\n"
  294. " DEL_YN, \r\n"
  295. " STRM_SVR_IP, \r\n"
  296. " STRM_SVR_PORT, \r\n"
  297. " STRM_SESN_NM, \r\n"
  298. " STRM_RTSP_ADDR, \r\n"
  299. " STRM_RTMP_ADDR, \r\n"
  300. " STRM_HTTP_ADDR, \r\n"
  301. " STRM_STOR_ADDR, \r\n"
  302. " CMRA_PORT, \r\n"
  303. " CMRA_ID, \r\n"
  304. " CMRA_PSWD, \r\n"
  305. " CMRA_CHNL, \r\n"
  306. " LINK_ID, \r\n"
  307. " ISTL_LCTN_ADDR ) \r\n"
  308. " VALUES (M.WCAM_CTLR_NMBR, \r\n"
  309. " M.WCAM_CTLR_ID, \r\n"
  310. " M.WCAM_NM, \r\n"
  311. " M.WCAM_CTLR_IP, \r\n"
  312. " M.WCAM_CTLR_PORT, \r\n"
  313. " M.WCAM_CTLR_LOCAL_NO, \r\n"
  314. " M.WCAM_TYPE_CD, \r\n"
  315. " M.ISTL_LCTN_NM, \r\n"
  316. " M.X_CRDN, \r\n"
  317. " M.Y_CRDN, \r\n"
  318. " M.DEL_YN, \r\n"
  319. " M.STRM_SVR_IP, \r\n"
  320. " M.STRM_SVR_PORT, \r\n"
  321. " M.STRM_SESN_NM, \r\n"
  322. " M.STRM_RTSP_ADDR, \r\n"
  323. " M.STRM_RTMP_ADDR, \r\n"
  324. " M.STRM_HTTP_ADDR, \r\n"
  325. " M.STRM_STOR_ADDR, \r\n"
  326. " M.CMRA_PORT, \r\n"
  327. " M.CMRA_ID, \r\n"
  328. " M.CMRA_PSWD, \r\n"
  329. " M.CMRA_CHNL, \r\n"
  330. " M.LINK_ID, \r\n"
  331. " M.ISTL_LCTN_ADDR ) \r\n";
  332. try
  333. {
  334. try
  335. {
  336. pADO = new TADOQuery(NULL);
  337. pADO->Close();
  338. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  339. pADO->SQL->Clear();
  340. pADO->SQL->Text = sQry;
  341. pADO->Parameters->ParamByName("p01")->Value = AObj->WCAM_CTLR_NMBR;
  342. pADO->Parameters->ParamByName("p02")->Value = AObj->WCAM_CTLR_ID;
  343. pADO->Parameters->ParamByName("p03")->Value = AObj->WCAM_NM;
  344. pADO->Parameters->ParamByName("p04")->Value = AObj->WCAM_CTLR_IP;
  345. pADO->Parameters->ParamByName("p05")->Value = AObj->WCAM_CTLR_PORT;
  346. pADO->Parameters->ParamByName("p06")->Value = AObj->WCAM_CTLR_LOCAL_NO;
  347. pADO->Parameters->ParamByName("p07")->Value = AObj->WCAM_TYPE_CD;
  348. pADO->Parameters->ParamByName("p08")->Value = AObj->ISTL_LCTN_NM;
  349. pADO->Parameters->ParamByName("p09")->Value = AObj->X_CRDN;
  350. pADO->Parameters->ParamByName("p10")->Value = AObj->Y_CRDN;
  351. pADO->Parameters->ParamByName("p11")->Value = AObj->DEL_YN;
  352. pADO->Parameters->ParamByName("p12")->Value = AObj->STRM_SVR_IP;
  353. pADO->Parameters->ParamByName("p13")->Value = AObj->STRM_SVR_PORT;
  354. pADO->Parameters->ParamByName("p14")->Value = AObj->STRM_SESN_NM;
  355. pADO->Parameters->ParamByName("p15")->Value = AObj->STRM_RTSP_ADDR;
  356. pADO->Parameters->ParamByName("p16")->Value = AObj->STRM_RTMP_ADDR;
  357. pADO->Parameters->ParamByName("p17")->Value = AObj->STRM_HTTP_ADDR;
  358. pADO->Parameters->ParamByName("p18")->Value = AObj->STRM_STOR_ADDR;
  359. pADO->Parameters->ParamByName("p19")->Value = AObj->CMRA_PORT;
  360. pADO->Parameters->ParamByName("p20")->Value = AObj->CMRA_ID;
  361. pADO->Parameters->ParamByName("p21")->Value = AObj->CMRA_PSWD;
  362. pADO->Parameters->ParamByName("p22")->Value = AObj->CMRA_CHNL;
  363. pADO->Parameters->ParamByName("p23")->Value = AObj->LINK_ID;
  364. pADO->Parameters->ParamByName("p24")->Value = AObj->ISTL_LCTN_ADDR;
  365. pADO->ExecSQL();
  366. return MergeFcltInfo(AObj, ADbConn);
  367. }
  368. catch(EDatabaseError &E)
  369. {
  370. DBERRORLOG("TWCamCtlrManager::MergeWCam", String(E.ClassName()), E.Message, sQry);
  371. throw Exception(String(E.ClassName()) + E.Message);
  372. }
  373. catch(Exception &e)
  374. {
  375. DBERRORLOG("TWCamCtlrManager::MergeWCam", String(e.ClassName()), e.Message, sQry);
  376. throw Exception(String(e.ClassName()) + e.Message);
  377. }
  378. }
  379. __finally
  380. {
  381. if (pADO)
  382. {
  383. pADO->Close();
  384. delete pADO;
  385. }
  386. }
  387. return true;
  388. }
  389. //---------------------------------------------------------------------------
  390. bool TWCamCtlrManager::MergeFcltInfo(TWCamCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  391. {
  392. String sQry;
  393. TADOQuery *pADO = NULL;
  394. sQry = "MERGE INTO TB_FCLT_INFR L \r\n"
  395. "USING (SELECT :p01 AS FCLT_ID, \r\n"
  396. " :p02 AS FCLT_TYPE, \r\n"
  397. " :p03 AS FCLT_LCTN \r\n"
  398. " FROM DUAL) M \r\n"
  399. " ON (L.FCLT_ID = M.FCLT_ID AND L.FCLT_TYPE = M.FCLT_TYPE) \r\n"
  400. "WHEN MATCHED \r\n"
  401. "THEN \r\n"
  402. " UPDATE SET L.FCLT_LCTN = M.FCLT_LCTN, \r\n"
  403. " L.DEL_YN = 'N' \r\n"
  404. "WHEN NOT MATCHED \r\n"
  405. "THEN \r\n"
  406. " INSERT ( FCLT_ID, FCLT_TYPE, FCLT_LCTN) \r\n"
  407. " VALUES (M.FCLT_ID, M.FCLT_TYPE, M.FCLT_LCTN) \r\n";
  408. try
  409. {
  410. try
  411. {
  412. pADO = new TADOQuery(NULL);
  413. pADO->Close();
  414. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  415. pADO->SQL->Clear();
  416. pADO->SQL->Text = sQry;
  417. pADO->Parameters->ParamByName("p01")->Value = AObj->WCAM_CTLR_ID;
  418. pADO->Parameters->ParamByName("p02")->Value = "WCAM";
  419. pADO->Parameters->ParamByName("p03")->Value = AObj->WCAM_NM;
  420. pADO->ExecSQL();
  421. return true;
  422. }
  423. catch(EDatabaseError &E)
  424. {
  425. DBERRORLOG("TWCamCtlrManager::MergeFcltInfo", String(E.ClassName()), E.Message, sQry);
  426. throw Exception(String(E.ClassName()) + E.Message);
  427. }
  428. catch(Exception &e)
  429. {
  430. DBERRORLOG("TWCamCtlrManager::MergeFcltInfo", String(e.ClassName()), e.Message, sQry);
  431. throw Exception(String(e.ClassName()) + e.Message);
  432. }
  433. }
  434. __finally
  435. {
  436. if (pADO)
  437. {
  438. pADO->Close();
  439. delete pADO;
  440. }
  441. }
  442. return true;
  443. }
  444. //---------------------------------------------------------------------------
  445. bool TWCamCtlrManager::GetNextWCamId(int &ANmbr, int &AId, TADOConnection *ADbConn/*=NULL*/)
  446. {
  447. String sQry;
  448. TADOQuery *pADO = NULL;
  449. sQry = "SELECT NVL(MAX(WCAM_CTLR_NMBR), 10000) + 1 AS NEWID FROM TB_WCAM_CTLR \r\n";
  450. try
  451. {
  452. try
  453. {
  454. pADO = new TADOQuery(NULL);
  455. pADO->Close();
  456. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  457. pADO->SQL->Clear();
  458. pADO->SQL->Text = sQry;
  459. pADO->Prepared = true;
  460. pADO->Open();
  461. ANmbr = pADO->FieldByName("NEWID")->AsInteger;
  462. AId = ANmbr / 10000;
  463. return true;
  464. }
  465. catch(EDatabaseError &E)
  466. {
  467. DBERRORLOG("TWCamCtlrManager::GetNextWCamId", String(E.ClassName()), E.Message, sQry);
  468. throw Exception(String(E.ClassName()) + E.Message);
  469. }
  470. catch(Exception &e)
  471. {
  472. DBERRORLOG("TWCamCtlrManager::GetNextWCamId", String(e.ClassName()), e.Message, sQry);
  473. throw Exception(String(e.ClassName()) + e.Message);
  474. }
  475. }
  476. __finally
  477. {
  478. if (pADO)
  479. {
  480. pADO->Close();
  481. delete pADO;
  482. }
  483. }
  484. return false;
  485. }
  486. //---------------------------------------------------------------------------
  487. bool TWCamCtlrManager::LoadPreSet(TADOConnection *ADbConn/*=NULL*/)
  488. {
  489. String sQry;
  490. TADOQuery *pADO = NULL;
  491. FLists.Lock();
  492. try
  493. {
  494. FOR_STL(TWCamCtlr*, pObj, FLists)
  495. {
  496. pObj->FLists.RemoveAll();
  497. }
  498. }
  499. __finally
  500. {
  501. FLists.UnLock();
  502. }
  503. sQry = "SELECT B.* \r\n"
  504. " FROM TB_WCAM_CTLR A, \r\n"
  505. " TB_WCAM_PSET B \r\n"
  506. " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n"
  507. " ORDER BY B.WCAM_CTLR_NMBR, B.PSET_NMBR \r\n";
  508. try
  509. {
  510. String WCAM_CTLR_NMBR;
  511. FLists.Lock();
  512. try
  513. {
  514. pADO = new TADOQuery(NULL);
  515. pADO->Close();
  516. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  517. pADO->SQL->Clear();
  518. pADO->SQL->Text = sQry;
  519. pADO->Prepared = true;
  520. pADO->Open();
  521. for( ; !pADO->Eof; pADO->Next())
  522. {
  523. WCAM_CTLR_NMBR = pADO->FieldByName("WCAM_CTLR_NMBR")->AsString;
  524. TWCamCtlr *pWCam = FLists.Find(String(WCAM_CTLR_NMBR));
  525. if (!pWCam) continue;
  526. TWCamPset *pObj = new TWCamPset();
  527. if (pObj)
  528. {
  529. pObj->WCAM_CTLR_NMBR = WCAM_CTLR_NMBR;
  530. pObj->PSET_NMBR = pADO->FieldByName("PSET_NMBR")->AsInteger;
  531. pObj->PSET_NM = pADO->FieldByName("PSET_NM")->AsString;
  532. pObj->PAN = pADO->FieldByName("PAN")->AsInteger;
  533. pObj->TILT = pADO->FieldByName("TILT")->AsInteger;
  534. pObj->ZOOM = pADO->FieldByName("ZOOM")->AsInteger;
  535. pObj->FOCS = pADO->FieldByName("FOCS")->AsInteger;
  536. pObj->ANGLE = pADO->FieldByName("ANGLE")->AsInteger;
  537. pObj->DFLT_YN = pADO->FieldByName("DFLT_YN")->AsString;
  538. pObj->DEL_YN = "N";
  539. pWCam->FLists.Push(pObj->PSET_NMBR, pObj);
  540. }
  541. }
  542. }
  543. catch(EDatabaseError &E)
  544. {
  545. DBERRORMSG("TWCamCtlrManager::LoadPreSet", String(E.ClassName()), E.Message, sQry);
  546. throw Exception(String(E.ClassName()) + E.Message);
  547. }
  548. catch(Exception &e)
  549. {
  550. DBERRORMSG("TWCamCtlrManager::LoadPreSet", String(e.ClassName()), e.Message, sQry);
  551. throw Exception(String(e.ClassName()) + e.Message);
  552. }
  553. }
  554. __finally
  555. {
  556. if (pADO)
  557. {
  558. pADO->Close();
  559. delete pADO;
  560. }
  561. FLists.UnLock();
  562. }
  563. return true;
  564. }
  565. //---------------------------------------------------------------------------
  566. bool TWCamCtlrManager::SavePreSet(TWCamCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  567. {
  568. String sQry;
  569. TADOQuery *pADO = NULL;
  570. try
  571. {
  572. try
  573. {
  574. pADO = new TADOQuery(NULL);
  575. pADO->Close();
  576. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  577. sQry = "DELETE FROM TB_WCAM_PSET WHERE WCAM_CTLR_NMBR = :p01";
  578. pADO->SQL->Clear();
  579. pADO->SQL->Text = sQry;
  580. pADO->Parameters->ParamByName("p01")->Value = AObj->WCAM_CTLR_NMBR;
  581. pADO->ExecSQL();
  582. sQry = "INSERT INTO TB_WCAM_PSET ( \r\n"
  583. " WCAM_CTLR_NMBR, \r\n"
  584. " PSET_NMBR, \r\n"
  585. " PSET_NM, \r\n"
  586. " PAN, \r\n"
  587. " TILT, \r\n"
  588. " ZOOM, \r\n"
  589. " FOCS, \r\n"
  590. " ANGLE, \r\n"
  591. " DFLT_YN \r\n"
  592. " ) VALUES ( \r\n"
  593. " :p01, \r\n"
  594. " :p02, \r\n"
  595. " :p03, \r\n"
  596. " :p04, \r\n"
  597. " :p05, \r\n"
  598. " :p06, \r\n"
  599. " :p07, \r\n"
  600. " :p08, \r\n"
  601. " :p09 \r\n"
  602. " ) \r\n";
  603. pADO->SQL->Clear();
  604. pADO->SQL->Text = sQry;
  605. FOR_STL(TWCamPset *, pObj, AObj->FLists)
  606. {
  607. if (pObj->DEL_YN != "N") continue;
  608. pADO->Parameters->ParamByName("p01")->Value = pObj->WCAM_CTLR_NMBR;
  609. pADO->Parameters->ParamByName("p02")->Value = pObj->PSET_NMBR;
  610. pADO->Parameters->ParamByName("p03")->Value = pObj->PSET_NM;
  611. pADO->Parameters->ParamByName("p04")->Value = pObj->PAN;
  612. pADO->Parameters->ParamByName("p05")->Value = pObj->TILT;
  613. pADO->Parameters->ParamByName("p06")->Value = pObj->ZOOM;
  614. pADO->Parameters->ParamByName("p07")->Value = pObj->FOCS;
  615. pADO->Parameters->ParamByName("p08")->Value = pObj->ANGLE;
  616. pADO->Parameters->ParamByName("p09")->Value = pObj->DFLT_YN;
  617. pADO->ExecSQL();
  618. }
  619. return true;
  620. }
  621. catch(EDatabaseError &E)
  622. {
  623. DBERRORLOG("TWCamCtlrManager::SavePreSet", String(E.ClassName()), E.Message, sQry);
  624. throw Exception(String(E.ClassName()) + E.Message);
  625. }
  626. catch(Exception &e)
  627. {
  628. DBERRORLOG("TWCamCtlrManager::SavePreSet", String(e.ClassName()), e.Message, sQry);
  629. throw Exception(String(e.ClassName()) + e.Message);
  630. }
  631. }
  632. __finally
  633. {
  634. if (pADO)
  635. {
  636. pADO->Close();
  637. delete pADO;
  638. }
  639. }
  640. return true;
  641. }
  642. //---------------------------------------------------------------------------
  643. bool TWCamCtlrManager::DeletePreSet(TWCamCtlr *AObj, int APsetNmbr, TADOConnection *ADbConn/*=NULL*/)
  644. {
  645. String sQry;
  646. TADOQuery *pADO = NULL;
  647. TWCamPset* pObj = AObj->FLists.Find(APsetNmbr);
  648. if (!pObj) return false;
  649. sQry = "DELETE FROM TB_WCAM_PSET WHERE WCAM_CTLR_NMBR = :p01 AND PSET_NMBR = :p02";
  650. try
  651. {
  652. try
  653. {
  654. pADO = new TADOQuery(NULL);
  655. pADO->Close();
  656. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  657. pADO->SQL->Clear();
  658. pADO->SQL->Text = sQry;
  659. pADO->Parameters->ParamByName("p01")->Value = AObj->WCAM_CTLR_NMBR;
  660. pADO->Parameters->ParamByName("p02")->Value = APsetNmbr;
  661. pADO->ExecSQL();
  662. pObj->DEL_YN = "Y";
  663. return true;
  664. }
  665. catch(EDatabaseError &E)
  666. {
  667. DBERRORLOG("TWCamCtlrManager::DeletePreSet", String(E.ClassName()), E.Message, sQry);
  668. throw Exception(String(E.ClassName()) + E.Message);
  669. }
  670. catch(Exception &e)
  671. {
  672. DBERRORLOG("TWCamCtlrManager::DeletePreSet", String(e.ClassName()), e.Message, sQry);
  673. throw Exception(String(e.ClassName()) + e.Message);
  674. }
  675. }
  676. __finally
  677. {
  678. if (pADO)
  679. {
  680. pADO->Close();
  681. delete pADO;
  682. }
  683. }
  684. return true;
  685. }
  686. //---------------------------------------------------------------------------
  687. bool TWCamCtlrManager::MergePreSet(TWCamCtlr *AObj, TWCamPset* APset, TADOConnection *ADbConn/*=NULL*/)
  688. {
  689. String sQry;
  690. TADOQuery *pADO = NULL;
  691. try
  692. {
  693. try
  694. {
  695. pADO = new TADOQuery(NULL);
  696. pADO->Close();
  697. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  698. sQry = "MERGE INTO TB_WCAM_PSET L \r\n"
  699. "USING (SELECT :p01 AS WCAM_CTLR_NMBR, \r\n"
  700. " :p02 AS PSET_NMBR, \r\n"
  701. " :p03 AS PSET_NM, \r\n"
  702. " :p04 AS PAN, \r\n"
  703. " :p05 AS TILT, \r\n"
  704. " :p06 AS ZOOM, \r\n"
  705. " :p07 AS FOCS, \r\n"
  706. " :p08 AS ANGLE, \r\n"
  707. " :p09 AS DFLT_YN \r\n"
  708. " FROM DUAL) M \r\n"
  709. " ON (L.WCAM_CTLR_NMBR = M.WCAM_CTLR_NMBR) \r\n"
  710. "WHEN MATCHED THEN \r\n"
  711. " UPDATE SET L.PSET_NMBR = M.PSET_NMBR, \r\n"
  712. " L.PSET_NM = M.PSET_NM, \r\n"
  713. " L.PAN = M.PAN, \r\n"
  714. " L.TILT = M.TILT, \r\n"
  715. " L.ZOOM = M.ZOOM, \r\n"
  716. " L.FOCS = M.FOCS, \r\n"
  717. " L.ANGLE = M.ANGLE, \r\n"
  718. " L.DFLT_YN = M.DFLT_YN \r\n"
  719. "WHEN NOT MATCHED THEN \r\n"
  720. " INSERT (WCAM_CTLR_NMBR, \r\n"
  721. " PSET_NMBR, \r\n"
  722. " PSET_NM, \r\n"
  723. " PAN, \r\n"
  724. " TILT, \r\n"
  725. " ZOOM, \r\n"
  726. " FOCS, \r\n"
  727. " ANGLE, \r\n"
  728. " DFLT_YN ) \r\n"
  729. " VALUES (M.WCAM_CTLR_NMBR, \r\n"
  730. " M.PSET_NMBR, \r\n"
  731. " M.PSET_NM, \r\n"
  732. " M.PAN, \r\n"
  733. " M.TILT, \r\n"
  734. " M.ZOOM, \r\n"
  735. " M.FOCS, \r\n"
  736. " M.ANGLE, \r\n"
  737. " M.DFLT_YN ) \r\n";
  738. pADO->SQL->Clear();
  739. pADO->SQL->Text = sQry;
  740. FOR_STL(TWCamPset *, pObj, AObj->FLists)
  741. {
  742. if (pObj->DEL_YN != "N") continue;
  743. pADO->Parameters->ParamByName("p01")->Value = APset->WCAM_CTLR_NMBR;
  744. pADO->Parameters->ParamByName("p02")->Value = APset->PSET_NMBR;
  745. pADO->Parameters->ParamByName("p03")->Value = APset->PSET_NM;
  746. pADO->Parameters->ParamByName("p04")->Value = APset->PAN;
  747. pADO->Parameters->ParamByName("p05")->Value = APset->TILT;
  748. pADO->Parameters->ParamByName("p06")->Value = APset->ZOOM;
  749. pADO->Parameters->ParamByName("p07")->Value = APset->FOCS;
  750. pADO->Parameters->ParamByName("p08")->Value = APset->ANGLE;
  751. pADO->Parameters->ParamByName("p09")->Value = APset->DFLT_YN;
  752. pADO->ExecSQL();
  753. TWCamPset* pObj = AObj->FLists.Find(APset->PSET_NMBR);
  754. if (pObj)
  755. {
  756. pObj->WCAM_CTLR_NMBR = APset->WCAM_CTLR_NMBR;
  757. pObj->PSET_NMBR = APset->PSET_NMBR;
  758. pObj->PSET_NM = APset->PSET_NM;
  759. pObj->PAN = APset->PAN;
  760. pObj->TILT = APset->TILT;
  761. pObj->ZOOM = APset->ZOOM;
  762. pObj->FOCS = APset->FOCS;
  763. pObj->ANGLE = APset->ANGLE;
  764. pObj->DFLT_YN = APset->DFLT_YN;
  765. }
  766. else
  767. {
  768. AObj->FLists.Push(APset->PSET_NMBR, APset);
  769. }
  770. }
  771. return true;
  772. }
  773. catch(EDatabaseError &E)
  774. {
  775. DBERRORLOG("TWCamCtlrManager::SavePreSet", String(E.ClassName()), E.Message, sQry);
  776. throw Exception(String(E.ClassName()) + E.Message);
  777. }
  778. catch(Exception &e)
  779. {
  780. DBERRORLOG("TWCamCtlrManager::SavePreSet", String(e.ClassName()), e.Message, sQry);
  781. throw Exception(String(e.ClassName()) + e.Message);
  782. }
  783. }
  784. __finally
  785. {
  786. if (pADO)
  787. {
  788. pADO->Close();
  789. delete pADO;
  790. }
  791. }
  792. return true;
  793. }
  794. //---------------------------------------------------------------------------
  795. bool TWCamCtlrManager::InsWCamControlHs(String ACtlDt, String ACctvNmbr, String ACtlType, String ACtlVal, String ACtlRes, String AUserId, TADOConnection *ADbConn/*=NULL*/)
  796. {
  797. String sQry;
  798. TADOQuery *pADO = NULL;
  799. sQry = "INSERT INTO TB_WCAM_CTRL_HS( \r\n"
  800. " CTRL_DT, \r\n"
  801. " WCAM_CTLR_NMBR, \r\n"
  802. " CTRL_TYPE, \r\n"
  803. " CTRL_VAL, \r\n"
  804. " CTRL_RESULT, \r\n"
  805. " USER_ID \r\n"
  806. " ) \r\n"
  807. " VALUES( \r\n"
  808. " :p01, \r\n"
  809. " :p02, \r\n"
  810. " :p03, \r\n"
  811. " :p04, \r\n"
  812. " :p05, \r\n"
  813. " :p06 \r\n"
  814. " ) \r\n";
  815. try
  816. {
  817. try
  818. {
  819. pADO = new TADOQuery(NULL);
  820. pADO->Close();
  821. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  822. pADO->SQL->Clear();
  823. pADO->SQL->Text = sQry;
  824. pADO->Parameters->ParamByName("p01")->Value = ACtlDt;
  825. pADO->Parameters->ParamByName("p02")->Value = ACctvNmbr;
  826. pADO->Parameters->ParamByName("p03")->Value = ACtlType;
  827. pADO->Parameters->ParamByName("p04")->Value = ACtlVal;
  828. pADO->Parameters->ParamByName("p05")->Value = ACtlRes;
  829. pADO->Parameters->ParamByName("p06")->Value = AUserId;
  830. pADO->ExecSQL();
  831. return true;
  832. }
  833. catch(EDatabaseError &E)
  834. {
  835. DBERRORLOG("TWCamCtlrManager::InsWCamControlHs", String(E.ClassName()), E.Message, sQry);
  836. throw Exception(String(E.ClassName()) + E.Message);
  837. }
  838. catch(Exception &e)
  839. {
  840. DBERRORLOG("TWCamCtlrManager::InsWCamControlHs", String(e.ClassName()), e.Message, sQry);
  841. throw Exception(String(e.ClassName()) + e.Message);
  842. }
  843. }
  844. __finally
  845. {
  846. if (pADO)
  847. {
  848. pADO->Close();
  849. delete pADO;
  850. }
  851. }
  852. return true;
  853. }
  854. //---------------------------------------------------------------------------