Соединение с источниками данных в компоненте сценария
Диспетчер соединений — это удобный элемент, который инкапсулирует и сохраняет сведения, необходимые для соединения с источником данных определенного типа. Дополнительные сведения см. в разделе Соединения служб Integration Services.
Можно сделать существующие диспетчеры соединений доступными для пользовательского сценария в компоненте источника или назначения, нажимая кнопки Добавить и Удалить на странице Диспетчеры соединений в окне Редактор преобразования «Сценарий». Однако необходимо написать собственный пользовательский код для загрузки и сохранения данных, а также, возможно, для открытия и закрытия соединения с источником данных. Дополнительные сведения о странице Диспетчеры соединений окна Редактор преобразования «Сценарий» см. в разделах Настройка компонента сценария в редакторе компонента сценария и Редактор преобразования «Сценарий» (страница «Диспетчеры соединений»).
Компонент сценария создает класс коллекции Connections в элементе проекта ComponentWrapper, который содержит строго типизированный метод доступа для каждого диспетчера соединений, имя которого совпадает с именем самого диспетчера соединений. Эта коллекция доступна с помощью свойства Connections класса ScriptMain. Свойство метода доступа возвращает ссылку на диспетчер соединений как на экземпляр IDTSConnectionManager100. Например, если добавить диспетчер соединений с именем MyADONETConnection на странице «Диспетчеры соединений» диалогового окна, можно получить ссылку на него в сценарии, добавив следующий код:
Dim myADONETConnectionManager As IDTSConnectionManager100 = _
Me.Connections.MyADONETConnection
Примечание |
---|
Прежде чем вызывать метод AcquireConnection, необходимо узнать тип соединения, возвращаемого диспетчером соединений. Поскольку в задаче «Сценарий» включен параметр Option Strict, перед использованием необходимо привести соединение, возвращаемое с типом Object, к подходящему типу соединения. |
Далее, необходимо вызвать метод AcquireConnection конкретного диспетчера соединений, чтобы получить базовое соединение либо сведения, необходимые для соединения с источником данных. Например, с помощью следующего кода можно получить ссылку на соединение System.Data.SqlConnection, упакованное диспетчером соединений ADO.NET:
Dim myADOConnection As SqlConnection = _
CType(MyADONETConnectionManager.AcquireConnection(Nothing), SqlConnection)
Вместе с тем тот же вызов к диспетчеру соединений с плоскими файлами вернет только путь и имя файла источника данных.
Dim myFlatFile As String = _
CType(MyFlatFileConnectionManager.AcquireConnection(Nothing), String)
Затем необходимо предоставить этот путь и имя файла модулю чтения System.IO.StreamReader, или модулю записи Streamwriter для чтения, или записи данных в плоский файл.
Важно! |
---|
При написании управляемого кода в компоненте сценария нельзя вызывать метод AcquireConnection диспетчеров соединений, возвращающий неуправляемые объекты, например диспетчера соединений OLE DB или диспетчера соединений Excel. Однако можно считать свойство ConnectionString этих диспетчеров соединений и соединиться с источником данных непосредственно в коде, используя строку соединения объекта connection OLEDB из пространства имен 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 и более поздних версий) в качестве значения параметра Расширенные свойства на странице Все диалогового окна Диспетчер соединений. |
Дополнительные сведения об использовании диспетчеров соединений с компонентом сценария см. в разделах Создание источника с помощью компонента сценария и Создание назначения с помощью компонента сценария.
|
См. также