CDSFcltF.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSFcltF.h"
  4. #include "ITS_OPLibF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. /*
  8. * CDSFclt Class
  9. */
  10. TCDSFclt::TCDSFclt()
  11. {
  12. }
  13. //---------------------------------------------------------------------------
  14. TCDSFclt::~TCDSFclt()
  15. {
  16. }
  17. //---------------------------------------------------------------------------
  18. //---------------------------------------------------------------------------
  19. TCDSFcltManager *CDSFcltManager = NULL;
  20. //---------------------------------------------------------------------------
  21. /*
  22. * CDSFclt Manager
  23. */
  24. TCDSFcltManager::TCDSFcltManager()
  25. {
  26. }
  27. //---------------------------------------------------------------------------
  28. TCDSFcltManager::~TCDSFcltManager()
  29. {
  30. }
  31. //---------------------------------------------------------------------------
  32. bool TCDSFcltManager::Merge(String AType, String AId, String AName, TADOConnection *ADbConn/*=NULL*/)
  33. {
  34. String sQry;
  35. TADOQuery *pADO = NULL;
  36. sQry = "MERGE INTO TB_FCLT_INFR L \r\n"
  37. "USING (SELECT :p01 AS FCLT_ID, \r\n"
  38. " :p02 AS FCLT_TYPE, \r\n"
  39. " :p03 AS FCLT_LCTN \r\n"
  40. " FROM DUAL) M \r\n"
  41. " ON (L.FCLT_ID = M.FCLT_ID AND L.FCLT_TYPE = M.FCLT_TYPE) \r\n"
  42. "WHEN MATCHED \r\n"
  43. "THEN \r\n"
  44. " UPDATE SET L.FCLT_LCTN = M.FCLT_LCTN, \r\n"
  45. " L.DEL_YN = 'N' \r\n"
  46. "WHEN NOT MATCHED \r\n"
  47. "THEN \r\n"
  48. " INSERT ( FCLT_ID, FCLT_TYPE, FCLT_LCTN) \r\n"
  49. " VALUES (M.FCLT_ID, M.FCLT_TYPE, M.FCLT_LCTN) \r\n";
  50. try
  51. {
  52. try
  53. {
  54. pADO = new TADOQuery(NULL);
  55. pADO->Close();
  56. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  57. pADO->SQL->Clear();
  58. pADO->SQL->Text = sQry;
  59. pADO->Parameters->ParamByName("p01")->Value = AId;
  60. pADO->Parameters->ParamByName("p02")->Value = AType;
  61. pADO->Parameters->ParamByName("p03")->Value = AName;
  62. pADO->ExecSQL();
  63. return true;
  64. }
  65. catch(EDatabaseError &E)
  66. {
  67. DBERRORMSG("CDSFcltManager::Merge", String(E.ClassName()), E.Message, sQry);
  68. throw Exception(String(E.ClassName()) + E.Message);
  69. }
  70. catch(Exception &e)
  71. {
  72. DBERRORMSG("CDSFcltManager::Merge", String(e.ClassName()), e.Message, sQry);
  73. throw Exception(String(e.ClassName()) + e.Message);
  74. }
  75. }
  76. __finally
  77. {
  78. if (pADO)
  79. {
  80. pADO->Close();
  81. delete pADO;
  82. }
  83. }
  84. return true;
  85. }
  86. //---------------------------------------------------------------------------
  87. bool TCDSFcltManager::Delete(String AId, TADOConnection *ADbConn/*=NULL*/)
  88. {
  89. String sQry;
  90. TADOQuery *pADO = NULL;
  91. sQry = "DELETE TB_FCLT_INFR \r\n"
  92. " WHERE FCLT_ID = :p01 \r\n";
  93. try
  94. {
  95. try
  96. {
  97. pADO = new TADOQuery(NULL);
  98. pADO->Close();
  99. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  100. pADO->SQL->Clear();
  101. pADO->SQL->Text = sQry;
  102. pADO->Parameters->ParamByName("p01")->Value = AId;
  103. pADO->ExecSQL();
  104. return true;
  105. }
  106. catch(EDatabaseError &E)
  107. {
  108. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  109. DBERRORMSG("CDSFcltManager::Delete", String(E.ClassName()), E.Message, sQry);
  110. throw Exception(String(E.ClassName()) + E.Message);
  111. }
  112. catch(Exception &exception)
  113. {
  114. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  115. DBERRORMSG("CDSFcltManager::Delete", String(exception.ClassName()), exception.Message, sQry);
  116. throw Exception(String(exception.ClassName()) + exception.Message);
  117. }
  118. }
  119. __finally
  120. {
  121. if (pADO)
  122. {
  123. pADO->Close();
  124. delete pADO;
  125. }
  126. }
  127. return true;
  128. }
  129. //---------------------------------------------------------------------------