2017-01-14 14 views
3

У меня есть папка, и каждый день в нее копируются несколько плоских файлов. Файлы имеют тот же формат и ту же структуру. Тем не менее, я хочу прочитать их в моей базе данных на основе их порядка создания.Как читать все файлы в папке в зависимости от даты создания в SSIS?

Пример: Файл, который был создан в 13:00, должен быть обработан до того, который был создан в 2 часа дня. Мне было интересно, есть ли какой-нибудь простой трюк для этого? Как ни странно, я должен использовать SSIS 2008! Благодаря!

+1

Посмотрите это сообщение в блоге ['Получить свойства файла с помощью SSIS'] (http://microsoft-ssis.blogspot.co.uk/2011/03/get-file-properties-with-ssis.html) –

ответ

3

Хорошая вещь в том, что вы используете SSIS 2008, потому что это позволяет Linq

Мои иллюстрации приведены в SSIS 2015, но он работает с 2008

  • Добавьте переменную типа Object пользователя :: dtFiles
  • Добавить задачу сценария для вашего проекта и добавить созданную переменную как ReadWriteVariable

enter image description here

  • в вашей задаче Сценарий написать следующий код:

Вы должны импортировать System.Linq Библиотека

Public Sub Main() 
    ' 
    ' Add your code here 
    ' 


    Dim strDirectory As String = "C:\New Folder" 
    Dim dtFiles As New List(Of String) 

    dtFiles.AddRange(IO.Directory.GetFiles(strDirectory, "*.*", IO.SearchOption.TopDirectoryOnly 
              ).OrderBy(Function(x) IO.File.GetCreationTime(x)).ToList) 


    Dts.Variables.Item("dtFiles").Value = dtFiles 

    Dts.TaskResult = ScriptResults.Success 
End Sub 
  • дд для каждого цикла Контейнер

enter image description here

  • изменить для каждого цикла, чтобы АДО нумератор и установить источник данных для пользователя :: dtFiles

enter image description here