2016-09-28 12 views
0

Я разрабатываю пакет SSIS, который использует задачу потока данных, которая имеет источник Excel. Поставщиком для подключения является Microsoft.ACE.OLEDB.12.0.Файл Excel на сетевом ресурсе - он открыт исключительно другим пользователем или вам необходимы разрешения для просмотра и записи его данных.

Если я укажу диспетчер подключений на локальный файл на своем компьютере и запустим пакет в Visual Studio, он завершится успешно.

Однако, если я указываю менеджера подключения к сетевой папке UNC на моем локальном домене, и запустить пакет из Visual Studio, он терпит неудачу со следующими сообщениями:

Error: 0xC0202009 at MyPackage, Connection manager "Excel Connection Manager": SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft Access Database Engine" Hresult: 0x80004005 Description: "The Microsoft Access database engine cannot open or write to the file ''. It is already opened exclusively by another user, or you need permission to view and write its data.".

Error: 0xC020801C at Data Flow Task, Excel Source [2]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.

Подробнее:

  • Файл из общей папки UNC идентичен моему локальному файлу.
  • Файл с общей папки UNC не открыт перед запуском пакета.
  • Мой пользователь домена (который я использую для запуска Visual Studio) имеет уровень разрешения владельца для общего ресурса UNC. Кроме того, у каждого есть уровень разрешений на чтение для общего ресурса UNC.
  • Run64BitRuntime установлен в значение False (возможно, не имеет значения).
  • Я запускаю Visual Studio локально.
+0

Вы используете локальный VS? –

+0

Да, я использую локальный VS. Я обновил вопрос, чтобы включить эту информацию. – ovidiufelixb

+0

вопрос только вопрос. вы используете цикл в листах excel в вашем пакете? (Задача перечислителя строк в командной строке) –

ответ

1

Решено использовать переменную для пути к файлу, а затем использовать эту переменную в качестве выражения для свойства ConnectionString соединения. Я также удвоил обратную косую черту в переменной, которая содержит pash, поэтому вместо \ computer \ share \ я использовал \\ computer \ share \.

Я полагаю, что слэши решили проблему, но мне еще предстоит проверить и узнать наверняка.

 Смежные вопросы

  • Нет связанных вопросов^_^