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


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

Диспетчеры соединений обеспечивают доступ к источникам данных, которые были настроены в пакете. Дополнительные сведения см. в статье Соединения служб 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  
    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 (небольшой) Оставайтесь в курсе в службах Integration Services
Последние загрузки, статьи, примеры и видео из Корпорации Майкрософт, а также выбранные решения из сообщества, посетите страницу служб Integration Services на сайте MSDN:

Посетить страницу «Службы Integration Services» на сайте MSDN

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

См. также

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