Conectarse a orígenes de datos de la tarea Script
Los administradores de conexiones proporcionan acceso a los orígenes de datos configurados en el paquete. Para obtener más información, vea Conexiones de Integration Services.
La tarea Script tiene acceso a estos administradores de conexiones a través de la propiedad Connections del objeto Dts. Todos los administradores de conexiones de la colección Connections almacenan información sobre cómo conectarse al origen de datos subyacente.
Cuando llama al método AcquireConnection de un administrador de conexiones, el administrador de conexiones se conecta al origen de datos, si aún no está conectado, y devuelve la información de conexión o la conexión adecuada para que la utilice en el código de la tarea Script.
[!NOTA]
Debe conocer el tipo de conexión que el administrador de conexiones devuelve antes de llamar a AcquireConnection. Dado que la tarea Script tiene habilitado Option Strict, debe convertir la conexión, que se devuelve como tipo Object, al tipo de conexión adecuado antes de poder utilizarlo.
Puede utilizar el método Contains de la colección Connections devuelto por la propiedad Connections para buscar una conexión existente antes de utilizar la conexión en el código.
Importante |
---|
No puede llamar al método AcquireConnection de los administradores de conexión que devuelvan objetos no administrados, como el administrador de conexiones OLE DB y el administrador de conexiones Excel, en el código administrado de una tarea Script. Sin embargo, puede leer la propiedad ConnectionString de estos administradores de conexiones y conectarse directamente al origen de datos en el código utilizando la cadena de conexión con OledbConnection desde el espacio de nombres System.Data.OleDb. Si debe llamar al método AcquireConnection de un administrador de conexión que devuelve un objeto no administrado, utilice un administrador de conexiones ADO.NET. Al configurar el administrador de conexiones ADO.NET para utilizar un proveedor OLE DB, se conecta mediante el proveedor de datos de .NET Framework para OLE DB. En este caso, el método AcquireConnection devuelve System.Data.OleDb.OleDbConnection en lugar de un objeto no administrado. Para configurar un administrador de conexiones ADO.NET para su uso con un origen de datos Excel, seleccione el proveedor Microsoft OLE DB para Jet, especifique un archivo de Excel y, a continuación, escriba Excel 8.0 (para Excel 97 y posterior) como el valor de Propiedades extendidas en la página Todas del cuadro de diálogo Administrador de conexiones. |
Ejemplo de conexiones
En el ejemplo siguiente se muestra cómo obtener acceso a los administradores de conexiones desde dentro de la tarea Script. En el ejemplo se supone que ha creado y configurado un administrador de conexiones ADO.NET denominado Test ADO.NET Connection y un administrador de conexiones de archivos planos denominado Test Flat File Connection. Observe que el administrador de conexiones ADO.NET devuelve un objeto SqlConnection que puede utilizar inmediatamente para conectarse al origen de datos. El administrador de conexiones de archivos planos, por otro lado, devuelve solamente una cadena que contiene la ruta de acceso y el nombre de archivo. Debe utilizar los métodos del espacio de nombres System.IO para abrir el archivo plano y trabajar con éste.
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;
}
}
|