Я провел все утро, глядя на это, и я иду по кругу.
Я настраиваю пакет служб SSIS для импорта всех расписаний Excel в папке, я начал только с одногоОднако, чтобы упростить задачу, добавив всего одну задачу потока данных, я вернусь, чтобы добавить цикл позже.
Я создал соединение с файлом Excel и добавил источник Excel, используя это соединение.Также стоит отметить, что заголовки могут меняться, поэтому отмените выбор в поле «Имена столбцов первой строки».
Затем я добавил пункт назначения OLE DB, и все столбцы совпадают.Затем я также добавил задачу SQL перед всем этим для усечения целевой таблицы.
Все это работает нормально, однако затем я создал строковую переменную ExcelFile со значением C:\Data\Timesheets\TS1.xlsx
.
Строка подключения диспетчера соединений Excel была
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Data\Timesheets\TS1.xlsx;Extended Properties="Excel 12.0 XML;HDR=NO";
, и все, что я хочу сделать, это добавить переменную ExcelFile для замены источника, поэтому я добавил выражение строки подключения со следующим значением:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::ExcelFile] + ";Extended Properties='Excel 12.0 XML;HDR=NO';"
Это оценивается как ожидалось, но когда я сохраняю это, пакет завершается с ошибкой:
Ошибка проверки.ISSTimesheetImport Диспетчер соединений «Диспетчер соединений Excel»: код ошибки служб SSIS DTS_E_OLEDBERROR.Произошла ошибка OLE DB.Код ошибки: 0x80004005.Доступна запись OLE DB.Источник: «Microsoft Access Database Engine». Hresult: 0x80004005 Описание: «Не удалось найти устанавливаемый ISAM.»Любая помощь будет принята с благодарностью.