Подключение к проекту не найдено для OleDbSource с использованием Biml
У меня возникла проблема при создании пакета с biml, который ссылается на менеджер соединений уровня проекта. Диспетчер соединений не найден для источника OleDb, но отлично работает в задаче SQL. Кроме того, менеджеры соединений на уровне пакетов работают нормально.
Вот пример кода:
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Connections>
<OleDbConnection Name="sql" ConnectionString="data source=.;initial catalog=Staging;Provider=SQLNCLI11.1;Integrated Security=sspi;" />
</Connections>
<Projects>
<PackageProject Name="Test">
<Packages>
<Package PackageName="MyPackage2"/>
</Packages>
<Connections>
<Connection ConnectionName="sql"/>
</Connections>
</PackageProject>
</Projects>
<Packages>
<Package Name="MyPackage2">
<Tasks>
<ExecuteSQL Name="TestSQL" ConnectionName="sql">
<DirectInput>
Select 1
</DirectInput>
</ExecuteSQL>
<Dataflow Name="My Dataflow">
<Transformations>
<OleDbSource Name="Read" ConnectionName ="sql">
<DirectInput>
Select 1 as Test;
</DirectInput>
</OleDbSource>
</Transformations>
</Dataflow>
</Tasks>
</Package>
</Packages>
</Biml>
При генерации OleDb Source имеет следующую ошибку:
Ошибка проверки. Чтение моего потока данных [2]: диспетчер соединений времени выполнения с идентификатором "{6253281E-98BA-45C3-ACAB-BC58B34CC627}" не найден. Убедитесь, что в коллекции диспетчера соединений есть диспетчер соединений с этим идентификатором.
Я пробовал много разных вещей, которые не помогли:
- Установите для CreateInProject значение true для диспетчера соединений
- Используемое соединение, а также OleDbConnection
- Добавил коллекцию Connections в пакет и сослался на соединение
Что мне не хватает?
1 ответ
Я скопировал вставленный твой BIML и он сгенерировал все файлы без ошибок. Когда я внес изменения и восстановил файлы, я получил то же сообщение об ошибке, что и вы.
Чтобы решить эту проблему, я удалил диспетчер соединений вручную, а затем восстановил файлы. Я не уверен, что является причиной этого, но это надежный обходной путь, чтобы пакет снова заработал.