//--------------------------------------------------------------------------- #pragma hdrstop #include "CDSImageF.h" #include "CDSCtlrF.h" #include "VmsUtilsF.h" #include "VMSCommLibF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- TCDSImageCell::TCDSImageCell() { IsDup = false; } //--------------------------------------------------------------------------- TCDSImageCell::~TCDSImageCell() { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TCDSImage::TCDSImage() { IMAG_DATA = NULL; IMAG_DATA = new TImage(NULL); UPDT_DT = "-"; } //--------------------------------------------------------------------------- TCDSImage::~TCDSImage() { Clear(); SAFE_DELETE(IMAG_DATA); FLists.RemoveAll(); } //--------------------------------------------------------------------------- void TCDSImage::Clear() { if (IMAG_DATA) { IMAG_DATA->Picture->Bitmap->FreeImage(); IMAG_DATA->Picture->Assign(NULL); } } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TCDSImageManager *CDSImageManager = NULL; //--------------------------------------------------------------------------- TCDSImageManager::TCDSImageManager() { } //--------------------------------------------------------------------------- TCDSImageManager::~TCDSImageManager() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- int TCDSImageManager::LoadVmsSymbolInfo(TADOConnection *ADbConn) { String sQry; TADOQuery *pADO = NULL; TStream *pStream = NULL; int nSelCnt = 0; int ii; DDBSTART; //SYMB_TYPE: ½É¹ú À¯Çü(SBT0:ÀϹݽɹúÀ̹ÌÁö,SBT1:¼ÒÅëÁ¤º¸¹è°æ,SBT2:¼ÒÅëÁ¤º¸À̹ÌÁö,SBT3:µ¿¿µ»ó,SBT4:´ë±âȯ°æµî±Þ) sQry = "SELECT A.* \r\n" " FROM TB_VMS_SYMB_LIB A \r\n" " WHERE A.DEL_YN = 'N' \r\n"; try { TCDSImage *pVmsImg; try { pADO = new TADOQuery(NULL); pADO->Connection = ADbConn; SQLText(pADO, sQry, true); SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { AnsiString SYMB_LIB_NMBR = pADO->FieldByName("SYMBLIB_NMBR")->AsString; AnsiString UPDT_DT = pADO->FieldByName("UPDT_DT")->AsString.Trim(); AnsiString SYMB_TYPE = pADO->FieldByName("SYMB_TYPE")->AsString.Trim(); //½É¹ú À¯Çü(SBT0:ÀϹݽɹúÀ̹ÌÁö,SBT1:¼ÒÅëÁ¤º¸¹è°æ,SBT2:¼ÒÅëÁ¤º¸À̹ÌÁö,SBT3:µ¿¿µ»ó,SBT4:´ë±âȯ°æµî±Þ) AnsiString sSymbolNmbr = SYMB_LIB_NMBR + "0"; //¼ÒÅëÁ¤º¸À̹ÌÁö ¶§¹®¿¡ À̹ÌÁö¹øÈ£¿¡ "0" À» Ãß°¡ÇÏ¿© À̹ÌÁö¹øÈ£·Î »ç¿ëÇÔ pVmsImg = FLists.Find(sSymbolNmbr); if (!pVmsImg) { pVmsImg = new TCDSImage(); pVmsImg->SYMB_LIB_NMBR = sSymbolNmbr; FLists.Push(pVmsImg->SYMB_LIB_NMBR, pVmsImg); } if (SYMB_TYPE == "SBT4") // ´ë±âȯ°æµî±Þ À̹ÌÁö { TStringList *sl = new TStringList; try { sl->Delimiter = '^'; sl->StrictDelimiter = true; sl->DelimitedText = pADO->FieldByName("SYMB_EXPL")->AsString.Trim(); for (ii = 0; ii < sl->Count; ii++) { if (ii < MAX_GRADE_SYNB) { pVmsImg->GRAD_SYMB_LIB_NMBR[ii] = sl->Strings[ii].Trim() + "0"; } } if (sl) delete sl; sl = NULL; } catch(Exception &e) { } } nSelCnt++; AnsiString LocalFileName = ""; AnsiString SYMB_FILE_NM = ""; if (SYMB_TYPE == "SBT3") { //µ¿¿µ»ó SYMB_FILE_NM = pADO->FieldByName("SYMB_FILE_NM")->AsString.Trim(); } else { SYMB_FILE_NM = pVmsImg->SYMB_LIB_NMBR; switch(pVmsImg->Type) { case vms_image_type_bmp: SYMB_FILE_NM += ".bmp"; break; case vms_image_type_gif: SYMB_FILE_NM += ".gif"; break; case vms_image_type_jpg: SYMB_FILE_NM += ".jpg"; break; default: break; } } LocalFileName = g_sFtpImageDir + SYMB_FILE_NM; if (FileExists(LocalFileName) && pVmsImg->UPDT_DT == UPDT_DT) { //½Éº¼ ÆÄÀÏÀÌ ·ÎÄà °æ·Î¿¡ Á¸ÀçÇÏÁö ¾Ê°Å³ª //½Éº¼ ¾÷µ¥ÀÌÆ® ½Ã°¢ÀÌ ´Ù¸¥ °æ¿ì¿¡¸¸ //½Éº¼¿ï ·ÎÄà µð·ºÅ丮¿¡ ÀúÀåÇÑ´Ù. continue; } pVmsImg->Type = vms_image_type_bmp; pVmsImg->UPDT_DT = UPDT_DT; pVmsImg->SYMB_TYPE = SYMB_TYPE; pVmsImg->SYMB_FILE_NM = SYMB_FILE_NM; //µ¿¿µ»óÀÎ °æ¿ì µ¿¿µ»ó ÆÄÀϸí pVmsImg->IMAG_SIZE = pADO->FieldByName("IMAG_SIZE")->AsInteger; // N NUMBER(10) Y 0 À̹ÌÁö »çÀÌÁî pVmsImg->PLAY_TM = pADO->FieldByName("PLAY_TM")->AsInteger; // N NUMBER(10) Y 0 µ¿¿µ»ó Ç÷¹ÀÌ ½Ã°£ pVmsImg->LocalFileName = ""; // À̹ÌÁöÀúÀå¸í ÃʱâÈ­ pVmsImg->FtpFileName = ""; // Ftp ´Ù¿î·Îµå ¸íÀ» ÃʱâÈ­ pVmsImg->Clear(); pVmsImg->FLists.RemoveAll(); TStream *pStream = NULL; try { try { pStream = pADO->CreateBlobStream(pADO->FieldByName("IMAG_DATA"), bmRead); if (pStream && pStream->Size > 0) { pStream->Position = 0; bool bRes = true; switch(pVmsImg->Type) { case vms_image_type_bmp: bRes = AssignBmp(pVmsImg->IMAG_DATA, pStream); break; case vms_image_type_gif: bRes = AssignGif(pVmsImg->IMAG_DATA, pStream); break; case vms_image_type_jpg: bRes = AssignJpg(pVmsImg->IMAG_DATA, pStream); break; default: break; } pVmsImg->SYMB_FILE_NM = pVmsImg->SYMB_LIB_NMBR; switch(pVmsImg->Type) { case vms_image_type_bmp: pVmsImg->SYMB_FILE_NM += ".bmp"; break; case vms_image_type_gif: pVmsImg->SYMB_FILE_NM += ".gif"; break; case vms_image_type_jpg: pVmsImg->SYMB_FILE_NM += ".jpg"; break; default: break; } pVmsImg->LocalFileName = g_sFtpImageDir + pVmsImg->SYMB_FILE_NM; pVmsImg->FtpFileName = AnsiString(FTP_IMAGE) + "\\" + pVmsImg->SYMB_FILE_NM; AnsiString BackupFileName = pVmsImg->LocalFileName+".bak"; if (FileExists(pVmsImg->LocalFileName)) { try { DeleteFile(pVmsImg->LocalFileName); //MoveFile(pVmsImg->LocalFileName.c_str(), BackupFileName.c_str()); } catch(Exception &) {} } switch(pVmsImg->Type) { case vms_image_type_bmp: bRes = SaveToFileBmp(pVmsImg->IMAG_DATA, pVmsImg->LocalFileName); break; case vms_image_type_gif: bRes = SaveToFileGif(pVmsImg->IMAG_DATA, pVmsImg->LocalFileName); break; case vms_image_type_jpg: bRes = SaveToFileJpg(pVmsImg->IMAG_DATA, pVmsImg->LocalFileName); break; default: break; } if (!bRes) { //if (FileExists(BackupFileName)) //{ // MoveFile(BackupFileName.c_str(), pVmsImg->LocalFileName.c_str()); //} pVmsImg->LocalFileName = ""; pVmsImg->FtpFileName = ""; } } } catch(Exception &e) { pVmsImg->LocalFileName = ""; pVmsImg->FtpFileName = ""; } } __finally { SAFE_DELETE(pStream); } if (pVmsImg->SYMB_TYPE == "SBT3") //½É¹ú À¯Çü(SBT0:ÀϹݽɹúÀ̹ÌÁö,SBT1:¼ÒÅëÁ¤º¸¹è°æ,SBT2:¼ÒÅëÁ¤º¸À̹ÌÁö,SBT3:µ¿¿µ»ó) { //À§¿¡¼­ À̹ÌÁöÀúÀåÇϱâ À§ÇØ ÆÄÀϸíÀ» º¯°æÇϱ⠶§¹®¿¡ ¿©±â¼­ µ¿¿µ»ó ÆÄÀϸíÀ» ´Ù½Ã Àоî¿Â´Ù pVmsImg->SYMB_FILE_NM = pADO->FieldByName("SYMB_FILE_NM")->AsString.Trim(); //µ¿¿µ»óÀÎ °æ¿ì µ¿¿µ»ó ÆÄÀϸí pVmsImg->LocalFileName = g_sFtpVideoDir + pVmsImg->SYMB_FILE_NM; pVmsImg->FtpFileName = AnsiString(FTP_VIDEO) + "\\" + pVmsImg->SYMB_FILE_NM; // Ftp ´Ù¿î·Îµå ¸íÀ» ¼³Á¤ #if 0 if (FileExists(pVmsImg->LocalFileName)) { try { // DeleteFile(pVmsImg->LocalFileName); } catch(Exception &) {} } else { TMemoryStream *Stream1 = (TMemoryStream *)pADO->CreateBlobStream(pADO->FieldByName("AVI_DATA"), bmRead); try { try { Stream1->SaveToFile(pVmsImg->LocalFileName); } catch(Exception &) { pVmsImg->FtpFileName = ""; } } __finally { SAFE_DELETE(pStream); } } #endif } else if (pVmsImg->SYMB_TYPE == "SBT2") //½É¹ú À¯Çü(SBT0:ÀϹݽɹúÀ̹ÌÁö,SBT1:¼ÒÅëÁ¤º¸¹è°æ,SBT2:¼ÒÅëÁ¤º¸À̹ÌÁö,SBT3:µ¿¿µ»ó) { //¼ÒÅëÁ¤º¸ µî±Þ¿¡ µû¸¥ À̹ÌÁö¸¦ »õ·Ó°Ô Ãß°¡ÇÑ´Ù. for (int nTrf = 1; nTrf <= 3; nTrf++) { sSymbolNmbr = SYMB_LIB_NMBR + AnsiString(nTrf); //ÁÂÇ¥°¡ ¹Ù²î´õ¶óµµ ¼¿Á¤º¸¿¡¼­ ¾÷µ¥ÀÌÆ® ÇÑ´Ù. À̹ÌÁö³»¿ëÀÌ ¹Ù²î´Â °æ¿ì´Â ¾ø´Ù //¿©±â¼­´Â ÀÏ´Ü ¸Þ¸ð¸®¿¡¸¸ À̹ÌÁöÁ¤º¸¸¦ »ý¼ºÇÑÈÄ ¼¿ÁÂÇ¥¿¡ µû¸¥ »ö±òÀ» LoadVmsSymbolCellInfo ÇÔ¼ö¿¡¼­ ÀÔÈùÈÄ //¸¶Áö¸·¿¡ ÆÄÀÏ·Î ÀúÀåÇÑ´Ù. TCDSImage* pTmpImg = FLists.Find(sSymbolNmbr); if (pTmpImg) continue; // ÀÖÀ¸¸é ó¸®ÇÏÁö ¾ÊÀ½ pTmpImg = new TCDSImage(); pTmpImg->SYMB_LIB_NMBR = sSymbolNmbr; FLists.Push(pTmpImg->SYMB_LIB_NMBR, pTmpImg); pTmpImg->Type = pVmsImg->Type; //pTmpImg->UPDT_DT = pVmsImg->UPDT_DT; //¿©±â´Â ¼¿Á¤º¸¸¦ ¾÷µ¥ÀÌÆ®ÇÒ¶§ »ç¿ëÇϱâ À§ÇØ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù pTmpImg->SYMB_TYPE = pVmsImg->SYMB_TYPE; pTmpImg->SYMB_FILE_NM = pVmsImg->SYMB_FILE_NM; //µ¿¿µ»óÀÎ °æ¿ì µ¿¿µ»ó ÆÄÀϸí pTmpImg->IMAG_SIZE = pVmsImg->IMAG_SIZE; // N NUMBER(10) Y 0 À̹ÌÁö »çÀÌÁî pTmpImg->PLAY_TM = pVmsImg->PLAY_TM; // N NUMBER(10) Y 0 µ¿¿µ»ó Ç÷¹ÀÌ ½Ã°£ pTmpImg->LocalFileName = ""; // À̹ÌÁöÀúÀå¸í ÃʱâÈ­ pTmpImg->FtpFileName = ""; // Ftp ´Ù¿î·Îµå ¸íÀ» ÃʱâÈ­ pTmpImg->Clear(); pTmpImg->FLists.RemoveAll(); TStream *pTrfStream = NULL; try { try { pTrfStream = pADO->CreateBlobStream(pADO->FieldByName("IMAG_DATA"), bmRead); if (pTrfStream && pTrfStream->Size > 0) { pTrfStream->Position = 0; switch(pTmpImg->Type) { case vms_image_type_bmp: AssignBmp(pTmpImg->IMAG_DATA, pTrfStream); break; case vms_image_type_gif: AssignGif(pTmpImg->IMAG_DATA, pTrfStream); break; case vms_image_type_jpg: AssignJpg(pTmpImg->IMAG_DATA, pTrfStream); break; default: break; } pTmpImg->SYMB_FILE_NM = pTmpImg->SYMB_LIB_NMBR; switch(pTmpImg->Type) { case vms_image_type_bmp: pTmpImg->SYMB_FILE_NM += ".bmp"; break; case vms_image_type_gif: pTmpImg->SYMB_FILE_NM += ".gif"; break; case vms_image_type_jpg: pTmpImg->SYMB_FILE_NM += ".jpg"; break; default: break; } pTmpImg->LocalFileName = g_sFtpImageDir + pTmpImg->SYMB_FILE_NM; pTmpImg->FtpFileName = AnsiString(FTP_IMAGE) + "\\" + pTmpImg->SYMB_FILE_NM; } } catch(Exception &e) { pTmpImg->LocalFileName = ""; pTmpImg->FtpFileName = ""; } } __finally { SAFE_DELETE(pTrfStream); } } } } } catch(EDatabaseError &E) { DBERROR(String(E.ClassName()), E.Message, sQry); return -1; } catch(Exception &e) { DBERROR(String(e.ClassName()), e.Message, sQry); return -1; } } __finally { SQLFree(pADO); } if (LoadVmsSymbolCellInfo(ADbConn) < 0) { return -1; } #if 0 //FTP·Î ´Ù¿î·Îµå ÇØ¾ß Çϱ⠶§¹®¿¡ ÆÄÀÏ·Î ÀúÀåÇØ¾ß ÇÑ´Ù. //¼ÒÅëÁ¤º¸ À̹ÌÁö °°Àº °æ¿ì µðºñ¿¡´Â Çϳª¸¸ µî·ÏÇϰí Àо ó¸®ÇÒ¶§ ¼ÒÅëµî±Þº° À̹ÌÁö¸¦ ¸¸µé¾î¼­ //¼ÒÅëµî±Þº°·Î À̹ÌÁö¸¦ ¸¸µç´Ù. //¸ðµç À̹ÌÁö´Â ÃÖÃÊ Çѹø¸¸ ·ÎÄÿ¡ ÆÄÀÏ·Î ÀúÀåÇϵµ·Ï ÇÏ°í ¼ÒÅëÁ¤º¸ À̹ÌÁöÀÎ °æ¿ì¿¡¸¸ ¼¿Á¤º¸°¡ ¹Ù²ð¼ö Àֱ⠶§¹®¿¡ //»õ·Ó°Ô ÀúÀåÇϵµ·Ï ÇÏÀÚ FOR_STL(TCDSImage*, pVmsImg, FLists) { MINFO("DCOM IMAGE: %s, %s, %s", pVmsImg->SYMB_LIB_NMBR.c_str(), pVmsImg->LocalFileName.c_str(), pVmsImg->FtpFileName.c_str()); if (pVmsImg->SYMB_TYPE != "SBT2") continue; // ¼ÒÅëÁ¤º¸ À̹ÌÁö°¡ ¾Æ´Ñ°æ¿ì ÀÌ¹Ì À§¿¡¼­ ÀúÀå ÇßÀ½ if (pVmsImg->SYMB_LIB_NMBR.ToIntDef(0) % 10) // <== ¿ä°Å´Â ¿øº» À̹ÌÁö°¡ ¾Æ´Ñ°æ¿ì, ¸¶Áö¸·½É¹úÀÚ¸®°¡ 0(¿øº»), 1(¿øÈ°), 2(Áöü), 3(Á¤Ã¼) ·Î ÀúÀåµÊ { //¼ÒÅëÁ¤º¸ ¿øº» À̹ÌÁö´Â ÀÌ¹Ì ÀúÀåÇßÀ¸´Ï±î ¼ÒÅëµî±Þ¿¡ µû¸¥ À̹ÌÁö¸¸ ¿©±â¼­ ÀúÀå bool bFail = false; try { //±âÁ¸¿¡ ÀÖÀ¸¸é »èÁ¦ÇÑ´Ù. AnsiString BackupFileName = pVmsImg->LocalFileName+".bak"; if (FileExists(pVmsImg->LocalFileName)) { try { //DeleteFile(pVmsImg->LocalFileName); MoveFile(pVmsImg->LocalFileName.c_str(), BackupFileName.c_str()); } catch(Exception &) {} } bool bRes = true; switch(pVmsImg->Type) { case vms_image_type_bmp: bRes = SaveToFileBmp(pVmsImg->IMAG_DATA, pVmsImg->LocalFileName); break; case vms_image_type_gif: bRes = SaveToFileGif(pVmsImg->IMAG_DATA, pVmsImg->LocalFileName); break; case vms_image_type_jpg: bRes = SaveToFileJpg(pVmsImg->IMAG_DATA, pVmsImg->LocalFileName); break; default: break; } if (!bRes) { if (FileExists(BackupFileName)) { MoveFile(BackupFileName.c_str(), pVmsImg->LocalFileName.c_str()); } } } catch(Exception &e) { pVmsImg->LocalFileName = ""; pVmsImg->FtpFileName = ""; bFail = true; } if (bFail) { if (FileExists(pVmsImg->LocalFileName)) { try { DeleteFile(pVmsImg->LocalFileName); } catch(Exception &) {} } } } } #endif CtlrItr it; for(it=CDSCtlrManager->FLists.FObjects.begin(); it != CDSCtlrManager->FLists.FObjects.end(); ++it) { TCDSCtlr *pObj = (TCDSCtlr*)it->second; pObj->FSymbolDownload = true; } IDBSTOP(nSelCnt); return nSelCnt; } //--------------------------------------------------------------------------- int TCDSImageManager::LoadVmsSymbolCellInfo(TADOConnection *ADbConn) { String sQry; TADOQuery *pADO = NULL; int nSelCnt = 0; DDBSTART; sQry = "SELECT B.*, A.UPDT_DT \r\n" " FROM TB_VMS_SYMB_LIB A, \r\n" " TB_VMS_SYMB_IFSC B \r\n" " WHERE A.SYMBLIB_NMBR = B.SYMBLIB_NMBR \r\n" " ORDER BY B.SYMBLIB_NMBR, B.CELL_ID \r\n"; try { TCDSImage *pVmsImg; TCDSImageCell *pImgCell; try { pADO = new TADOQuery(NULL); pADO->Connection = ADbConn; SQLText(pADO, sQry, true); SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { AnsiString UPDT_DT = pADO->FieldByName("UPDT_DT")->AsString.Trim(); AnsiString SYMB_LIB_NMBR = pADO->FieldByName("SYMBLIB_NMBR")->AsString.Trim(); AnsiString sSymbolNmbr = SYMB_LIB_NMBR + "0"; //¼ÒÅëÁ¤º¸À̹ÌÁö ¶§¹®¿¡ À̹ÌÁö¹øÈ£¿¡ "0" À» Ãß°¡ÇÏ¿© À̹ÌÁö¹øÈ£·Î »ç¿ëÇÔ pVmsImg = CDSImageManager->FLists.Find(sSymbolNmbr); if (!pVmsImg) { continue; } pImgCell = new TCDSImageCell(); pImgCell->SYMB_LIB_NMBR = sSymbolNmbr; pImgCell->CELL_ID = pADO->FieldByName("CELL_ID")->AsInteger; pImgCell->POSX = pADO->FieldByName("POSX")->AsInteger; pImgCell->POSY = pADO->FieldByName("POSY")->AsInteger; pImgCell->VMS_IFSC_ID = pADO->FieldByName("VMS_IFSC_ID")->AsString; pImgCell->IsDup = false; FOR_STL(TCDSImageCell*, pDup, pVmsImg->FLists) { if (pDup->VMS_IFSC_ID == pImgCell->VMS_IFSC_ID) { pImgCell->IsDup = true; break; } } pVmsImg->FLists.Push(pImgCell->CELL_ID, pImgCell); //¼ÒÅëÁ¤º¸ À̹ÌÁöÀÎ °æ¿ì(¿øÈ°,Áöü,Á¤Ã¼ À̹ÌÁö »ý¼º) if (pVmsImg->SYMB_TYPE == "SBT2") //½É¹ú À¯Çü(SBT0:ÀϹݽɹúÀ̹ÌÁö,SBT1:¼ÒÅëÁ¤º¸¹è°æ,SBT2:¼ÒÅëÁ¤º¸À̹ÌÁö,SBT3:µ¿¿µ»ó,SBT4:´ë±âȯ°æµî±Þ) { for (int nTrf = 1; nTrf <= 3; nTrf++) { sSymbolNmbr = SYMB_LIB_NMBR + AnsiString(nTrf); TCDSImage *pTmpImg = CDSImageManager->FLists.Find(sSymbolNmbr); if (!pTmpImg) continue; if (FileExists(pTmpImg->LocalFileName) && pTmpImg->UPDT_DT == UPDT_DT) { //º¯°æµÈ°Ô ¾øÀ¸¹Ç·Î ÀúÀåÇÏÁö ¾Ê´Â´Ù. continue; } pTmpImg->IMAG_DATA->Picture->Bitmap->Canvas->Lock(); try { pTmpImg->IMAG_DATA->Picture->Bitmap->Canvas->Brush->Color = GradeToFillColor(nTrf); TColor clColor = pTmpImg->IMAG_DATA->Picture->Bitmap->Canvas->Pixels[pImgCell->POSX][pImgCell->POSY]; if (clColor == clWhite) { pTmpImg->IMAG_DATA->Picture->Bitmap->Canvas->Brush->Color = clWhite; } pTmpImg->IMAG_DATA->Picture->Bitmap->Canvas->FloodFill(pImgCell->POSX, pImgCell->POSY, clColor, fsSurface); } __finally { pTmpImg->IMAG_DATA->Picture->Bitmap->Canvas->Unlock(); } //¼ÒÅëÁ¤º¸ ¼ÒÅëµî±Þ À̹ÌÁö¸¦ ·ÎÄÿ¡ ÀúÀåÇÑ´Ù. bool bRes = true; AnsiString BackupFileName = pTmpImg->LocalFileName+".bak"; if (FileExists(pTmpImg->LocalFileName)) { try { DeleteFile(pTmpImg->LocalFileName); //MoveFile(pTmpImg->LocalFileName.c_str(), BackupFileName.c_str()); } catch(Exception &) {} } switch(pTmpImg->Type) { case vms_image_type_bmp: bRes = SaveToFileBmp(pTmpImg->IMAG_DATA, pTmpImg->LocalFileName); break; case vms_image_type_gif: bRes = SaveToFileGif(pTmpImg->IMAG_DATA, pTmpImg->LocalFileName); break; case vms_image_type_jpg: bRes = SaveToFileJpg(pTmpImg->IMAG_DATA, pTmpImg->LocalFileName); break; default: break; } if (bRes) { pTmpImg->UPDT_DT = UPDT_DT; } else { if (FileExists(BackupFileName)) { MoveFile(BackupFileName.c_str(), pTmpImg->LocalFileName.c_str()); } pTmpImg->LocalFileName = ""; pTmpImg->FtpFileName = ""; } } } pVmsImg->UPDT_DT = UPDT_DT; nSelCnt++; } } catch(EDatabaseError &E) { DBERROR(String(E.ClassName()), E.Message, sQry); return -1; } catch(Exception &e) { DBERROR(String(e.ClassName()), e.Message, sQry); return -1; } } __finally { SQLFree(pADO); } IDBSTOP(nSelCnt); return nSelCnt; } //---------------------------------------------------------------------------