Поделиться через


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

Диспетчеры соединений обеспечивают доступ к источникам данных, которые были настроены в пакете. Дополнительные сведения см. в разделе Соединения в службах 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, выберите поставщик 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
    myADONETConnection = _
        DirectCast(Dts.Connections("Test ADO.NET Connection").AcquireConnection(Dts.Transaction), _
        SqlClient.SqlConnection)
    MsgBox(myADONETConnection.ConnectionString, _
        MsgBoxStyle.Information, "ADO.NET Connection")

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

    Dts.TaskResult = ScriptResults.Success

End Sub
using System;
using System.Data.SqlClient;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;

public class ScriptMain
{



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

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

            Dts.TaskResult = (int)ScriptResults.Success;

        }

} 
Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы получить новейшую документацию, статьи, образцы и видеоматериалы корпорации Майкрософт, а также лучшие решения участников сообщества, посетите страницу служб Службы Integration Services на сайте MSDN:


Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.

См. также

Задания

Создание диспетчеров соединений

Основные понятия

Соединения в службах Integration Services (SSIS)