Не удается подключиться к задаче сценария SSIS источника данных

Кажется, я не могу подключиться к соединению с базой данных, которое я установил в пакете SSIS внутри задачи сценария. Вот мой код, это соединение OleDB.

public void Main()
    {
        // TODO: Add your code here
        OleDbConnection myOleDbConnection = new OleDbConnection();
        myOleDbConnection = (OleDbConnection)(Dts.Connections["Connection"].AcquireConnection(Dts.Transaction) as OleDbConnection);
        MessageBox.Show(myOleDbConnection.ConnectionString, "OleDB Connection");

        Dts.TaskResult = (int)ScriptResults.Success;
    }

Я получаю следующее исключение

введите здесь описание изображения


person psycho    schedule 10.12.2014    source источник
comment
@EricHauenstein Я полностью верю, что SSIS содержит все возможные сообщения об ошибках, когда-либо придуманные.   -  person Kyle Hale    schedule 10.12.2014
comment
Извините, я прояснил вопрос   -  person psycho    schedule 10.12.2014
comment
@KyleHale Поскольку он включает уровень изоляции транзакций Chaos, я склонен вам верить. Псих, изображение все еще не загружается для вас.   -  person Eric Hauenstein    schedule 10.12.2014


Ответы (1)


Метод AcquireConnection() диспетчера соединений возвращает неуправляемый объект, в вашем случае Oledb он возвращает родной COM object. поэтому используйте Ado.net connection, если это возможно в вашем сценарии.

Если вы хотите придерживаться Oledb, то вот обходной путь.

ConnectionManager cm = Dts.Connections["Connection"];
IDTSConnectionManagerDatabaseParameters100 cmParams = cm.InnerObject as  
                                                      IDTSConnectionManagerDatabaseParameters100;
OleDbConnection myOleDbConnection = cmParams.GetConnectionForSchema() as OleDbConnection;
person gunvant.k    schedule 10.12.2014
comment
По какой-то причине я получаю только null для cmParams. Любые идеи, почему? - person M Akin; 30.03.2015