Не удается получить ограничение для работы над задачей SQL в цикле ForEach - PullRequest
3 голосов
/ 24 мая 2019

Я пытаюсь выполнить довольно простой процесс:

  • (Сброс) Усеченная таблица
  • Циклическая папка файлов
  • Проверьте, существует ли FileName.в таблице FILES
  • Если нет, импортировать данные из файла в таблицу DATA
  • Вставить имя файла в таблицу FILES

Я могу заставить его пройти через папку файловзагрузите их и вставьте имя файла в таблицу.Однако я не могу заставить работать ограничение, чтобы оно загружало ТОЛЬКО файлы, которых еще нет в таблице FILES.

Вот мои общие настройки:

enter image description here

Переменные:

enter image description here

Вот настройка цикла ForEach:

enter image description here enter image description here

«Файл существует в таблице» Задача SQL:

enter image description here enter image description hereenter image description here

Я пытался:

SELECT COUNT(id) as id FROM PORG_Files WHERE filename = ?

Я также пытался использовать выражение SqlStatementSource:

"SELECT COUNT(id) as id FROM PORG_Files WHERE filename = '" + @[User::CurrentFileName] + "'"

Но я не был уверенчто делать с SQLStatement в разделе General при использовании выражения.

Вот противоречие, которое всегда кажется истинным:

enter image description here

Я думал, что проблема была в форматировании пути, где переменная имеет двойное значение \ s, но с помощью ЗАМЕНЫ, чтобы исправить это, она не работает.

Для хорошей меры, вот «Вставить файл в таблицу».Задача SQL:

enter image description here enter image description here enter image description here

Файлы вставляются в таблицу очень хорошо, вот как выглядит таблица:

enter image description here

Какого черта я делаю не так?!?!

Спасибо !!

Ответы [ 3 ]

1 голос
/ 24 мая 2019

Вы пытались изменить идентификатор ResultName на 0 .

Вы можете посмотреть документацию для справки. enter image description here

0 голосов
/ 26 мая 2019

В итоге получилось несколько вещей.

  • Ограничение должно было использовать @ [User :: id] == 0
  • Мне нужно было использовать @ [User:: CurrentFileName] в Запросе в Задаче SQL
  • Мне НЕ нужно ЗАМЕНИТЬ в Запросе

Спасибо, без множества идей, которые я, возможно, не понял!

0 голосов
/ 25 мая 2019

Изменить размер входного параметра

Попробуйте увеличить размер входного параметра в задаче «Выполнение SQL», поскольку значение 100 может привести к усечению.Для пути к файлу я установлю его на 1000.

Использование выражений

Но я не был уверен, что делать с SQLStatement в разделе General при использовании выражения

При использовании выражения SQLStatement на вкладке «Общие» не имеет значения, так как он изменяется во время выполнения.

...