VmsMsgRespMngr.cpp 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include <tchar.h>
  5. #include <cxFormats.hpp>
  6. //---------------------------------------------------------------------------
  7. #include "AppGlobalF.h"
  8. #include "ITSDbF.h"
  9. #include "FrmVmsMsgRespMngrF.h"
  10. //---------------------------------------------------------------------------
  11. USEFORM("SRC\FrmVmsMsgRespMngrF.cpp", FrmVmsMsgRespMngr);
  12. //---------------------------------------------------------------------------
  13. WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
  14. {
  15. if (!CheckApplicationParam()) {
  16. return 0;
  17. }
  18. if (!ApplicationSingleRun("TFrmVmsMsgRespMngr", "VMS 대응 메시지 관리")) {
  19. return 0;
  20. }
  21. DateSeparator = '-';
  22. TimeSeparator = ':';
  23. ShortDateFormat ="yyyy-MM-dd";
  24. ShortTimeFormat = "hh:nn:ss";
  25. LongTimeFormat = "hh:nn:ss";
  26. cxFormatController()->BeginUpdate();
  27. cxFormatController()->UseDelphiDateTimeFormats = true;
  28. cxFormatController()->EndUpdate();
  29. cxFormatController()->GetFormats();
  30. cxFormatController()->NotifyListeners();
  31. g_nPid = (int)GetCurrentProcessId();
  32. g_sAppDir = ExtractFilePath(Application->ExeName);
  33. g_sAppName = ChangeFileExt(ExtractFileName(Application->ExeName), "");
  34. g_sCfgDir = g_sAppDir + g_IniFileDir + "\\";
  35. g_sLogDir = g_sAppDir + "Log\\";
  36. ForceDirectories(g_sLogDir.c_str());
  37. ChDir(g_sAppDir);
  38. /*
  39. * 시스템 운영환경을 ini 파일에서 읽어 온다.
  40. */
  41. LoadDefaultConfigInfo(g_IniFileName);
  42. ITSLog = new TITSLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  43. ITSLog->FLogCfg = g_LogCfg;
  44. if (!ITSDb_Initialize())
  45. {
  46. if (g_AppCfg.sLang == "kr")
  47. {
  48. Application->MessageBox(L"Database 자원을 시스템으로부터 얻지 못했습니다.\r\n\r\n프로그램을 종료합니다.",
  49. L"프로그램 시작 오류!!!",
  50. MB_OK|MB_ICONERROR);
  51. }
  52. else
  53. {
  54. Application->MessageBox(L"Database resource could not be obtained from the system.\r\n\r\nExit the program.",
  55. L"Program Start Error!!!",
  56. MB_OK|MB_ICONERROR);
  57. }
  58. goto prog_exit;
  59. }
  60. if (g_AppCfg.itsdb.sConnectStr == "")
  61. {
  62. ITSDb_SetInfo(g_AppCfg.itsdb.sProvider, g_AppCfg.itsdb.sServerName, g_AppCfg.itsdb.sUserName, g_AppCfg.itsdb.sPassword);
  63. }
  64. else
  65. {
  66. ITSDb_SetConnStr(g_AppCfg.itsdb.sConnectStr);
  67. }
  68. if (!ITSDb_Open())
  69. {
  70. if (g_AppCfg.sLang == "kr")
  71. {
  72. Application->MessageBox(L"데이터베이스 접속에 실패하였습니다.\r\n\r\n프로그램을 종료합니다.",
  73. L"프로그램 시작 오류!!!",
  74. MB_OK|MB_ICONERROR);
  75. }
  76. else
  77. {
  78. Application->MessageBox(L"Database connection failed.\r\n\r\nExit the program.",
  79. L"Program Start Error!!!",
  80. MB_OK|MB_ICONERROR);
  81. }
  82. goto prog_exit;
  83. }
  84. try
  85. {
  86. ReportMemoryLeaksOnShutdown = true;
  87. Application->Initialize();
  88. Application->MainFormOnTaskBar = true;
  89. Application->Title = g_AppCfg.sTitle;
  90. Application->Title = "VMS 대응 메시지 관리";
  91. Application->CreateForm(__classid(TFrmVmsMsgRespMngr), &FrmVmsMsgRespMngr);
  92. Application->Run();
  93. }
  94. catch (Exception &exception)
  95. {
  96. Application->ShowException(&exception);
  97. }
  98. catch (...)
  99. {
  100. try
  101. {
  102. throw Exception("");
  103. }
  104. catch (Exception &exception)
  105. {
  106. Application->ShowException(&exception);
  107. }
  108. }
  109. prog_exit:
  110. try
  111. {
  112. ITSDb_Finalize();
  113. }
  114. catch(...)
  115. {
  116. }
  117. return 0;
  118. }
  119. //---------------------------------------------------------------------------