2 Replies Latest reply: Dec 1, 2015 3:17 PM by Anna Klimkova RSS

    Выборочная загрузка только измененных файлов

    Nina Zhidkova

      Всем здравствуйте!

       

      Подскажите, пожалуйста, как лучше организовать загрузку данных.

       

      Схема следующая: есть файлы отчетов в excel, каждый файл отчета содержит данные за год. Приложение должно содержать актуальные данные из файлов с 2010 по 2015 год. Сейчас приложение каждый раз загружает данные из указанных файлов excel в цикле с 2010 по 2015 год, что естественно занимает достаточно продолжительное время. Поэтому появилась идея сократить время загрузки за счет использования qvd и выборочной перезагрузки только измененных файлов excel. Данные в этих файлах могут быть изменены в любой момент и за любой период. Буквально сегодня могут быть изменены данные за 2014 год, поэтому я не могу один раз загрузить полностью все файлы, а потом каждый раз перезагружать, к примеру, только текущий год.

       

      Посоветуйте, пожалуйста, как наиболее рационально поступить в данном случае. Как определить файл, данные в котором были изменены и грузить именно его? А возможно, нужно идти совсем в другом направлении?

       

      Спасибо!

        • Re: Выборочная загрузка только измененных файлов
          Eugeny Ilyin

          Добрый день.
          Собственно Вы уже сами начали отвечать на свой вопрос.
          Если использовать Эксель-файлы, то как можно определить, какой из них был обновлен?
          Либо использовать какой-то макрос, регистрирующие изменения в отдельную "флаговую" таблицу.
          Либо макрос, регистрирующий время изменения записи в отдельном поле, по которому затем и можно будет определять время изменения записи.

          Основная идея в том, чтобы иметь какой-то источник информации о том, какие записи были изменены и когда.

          А какой именно способ выбрать - это уже от возможностей и используемых инструментов.

          Можно формировать ключ, на основании всех полей, и затем опираться на него, но все равно потребуется открытие всех файлов.

          Также можно почитать здесь и в документации про инкрементальную загрузку.

          • Re: Выборочная загрузка только измененных файлов
            Anna Klimkova

            Добрый вечер, Нина!

             

            Можете попробовать сравнивать время изменения файла Excel и соответствующего файла qvd с помощью функции filetime('путь и имя файла'),

            например:

             

            let vEditTime = filetime( 'SiB\StoreMap.qvd' );

             

            let vEditTimeXls = filetime( '..\..\..\SiB\\New\StoreMap.xlsx' );

            и по результатам сравнения выбирать наиболее свежий источник для загрузки и нужно ли обновить qvd.