Бөлісу құралы:


Соединение с источниками данных в задаче «Скрипт»

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

Диспетчеры соединений обеспечивают доступ к источникам данных, которые были настроены в пакете. Дополнительные сведения см. в статье Соединения служб Integration Services (SSIS).

Задача "Скрипт" может обращаться к диспетчерам соединений через свойство Connections объекта Dts. Каждый диспетчер соединений в коллекции Connections хранит сведения о том, как соединиться с базовым источником данных.

При вызове метода AcquireConnection диспетчера соединений диспетчер соединяется с источником данных, если соединение еще не было установлено, и возвращает соответствующее соединение или сведения о соединении для использования в коде задачи «Скрипт».

Примечание.

Прежде чем вызывать метод AcquireConnection, необходимо знать тип соединения, возвращаемого диспетчером соединений. Поскольку в задачу "Скрипт" включен параметр Option Strict, перед использованием необходимо привести подключение, возвращаемое с типом Object, к подходящему типу подключения.

Можно воспользоваться методом Contains коллекции Connections, возвращаемой свойством Connections, чтобы выполнить поиск существующего соединения, прежде чем использовать соединение в коде.

Внимание

В управляемом коде задачи "Скрипт" нельзя вызывать метод AcquireConnection диспетчеров соединений, возвращающих неуправляемые объекты, например диспетчера соединений OLE DB или диспетчера соединений Excel. Однако можно считать свойство ConnectionString этих диспетчеров соединений и подключиться к источнику данных непосредственно в коде с помощью строки подключения OledbConnection из пространства имен System.Data.OleDb.

Если необходимо вызвать метод AcquireConnection диспетчера соединений, возвращающего неуправляемый объект, используйте диспетчер соединений ADO.NET. При настройке диспетчера соединений ADO.NET для использования поставщика OLE DB он соединяется с помощью поставщика данных .NET Framework для OLE DB. В этом случае метод AcquireConnection возвращает System.Data.OleDb.OleDbConnection вместо неуправляемого объекта. Чтобы настроить диспетчер соединений ADO.NET для использования с источником данных Excel, выберите поставщика Microsoft OLE DB для Jet, укажите файл Excel и введите Excel 8.0 (для Excel 97 и более поздних версий) значение расширенных свойств на странице "Все" диалогового окна диспетчер подключений.

Пример соединений

В следующем примере демонстрируется, как получить доступ к диспетчерам соединений из задачи «Скрипт». В примере предполагается, что вы создали и настроили диспетчер соединений ADO.NET с именем Test ADO.NET Connection и диспетчер соединений с неструктурированными файлами с именем Test Flat File Connection. Обратите внимание, что диспетчер соединений ADO.NET возвращает объект SqlConnection , который можно использовать немедленно для подключения к источнику данных. Диспетчер соединений с неструктурированными файлами, в то же время, возвращает лишь строку, содержащую путь и имя файла. Необходимо использовать методы из пространства имен System.IO, чтобы открыть неструктурированный файл и работать с ним.

    Public Sub Main()

        Dim myADONETConnection As SqlClient.SqlConnection =
            DirectCast(Dts.Connections("Test ADO.NET Connection").AcquireConnection(Dts.Transaction),
                SqlClient.SqlConnection)
        MsgBox(myADONETConnection.ConnectionString,
            MsgBoxStyle.Information, "ADO.NET Connection")

        Dim myFlatFileConnection As String =
            DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction),
                String)
        MsgBox(myFlatFileConnection, MsgBoxStyle.Information, "Flat File Connection")

        Dts.TaskResult = ScriptResults.Success

    End Sub
		public void Main()
		{
            SqlConnection myADONETConnection = 
                Dts.Connections["Test ADO.NET Connection"].AcquireConnection(Dts.Transaction)
                as SqlConnection;
            MessageBox.Show(myADONETConnection.ConnectionString, "ADO.NET Connection");

            string myFlatFileConnection = 
                Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) 
                as string;
            MessageBox.Show(myFlatFileConnection, "Flat File Connection");

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

См. также

Соединения в службах Integration Services (SSIS)
Создание диспетчеров соединений