Compartir a través de


Agregar conexiones mediante programación

Se aplica a: SQL Server SSIS Integration Runtime en Azure Data Factory

La clase ConnectionManager representa las conexiones físicas con los orígenes de datos externos. La clase ConnectionManager aísla los detalles de la implementación de la conexión del tiempo de ejecución. Esto permite que el tiempo de ejecución interactúe con cada administrador de conexiones de forma coherente y predecible. Los administradores de conexiones contienen un conjunto de propiedades estándar que todas las conexiones tienen en el común, como Name, ID, Description y ConnectionString. Sin embargo, las propiedades ConnectionString y Name son normalmente las únicas propiedades que se requieren para configurar un administrador de conexiones. A diferencia de otros paradigmas de programación, donde las clases de conexión exponen métodos como Open o Connect para establecer físicamente una conexión al origen de datos, el motor en tiempo de ejecución administra todas las conexiones para el paquete mientras se ejecuta.

La clase Connections es una colección de los administradores de conexiones agregados a ese paquete y que están disponibles para su uso en tiempo de ejecución. Puede agregar más administradores de conexiones a la colección mediante el método Add de la colección y proporcionando una cadena que indica el tipo de administrador de conexiones. El método Add devuelve la instancia ConnectionManager que se agregó al paquete.

Propiedades intrínsecas

La clase ConnectionManager expone un conjunto de propiedades comunes para todas las colecciones. Sin embargo, a veces se necesita tener acceso a las propiedades que son únicas para un tipo de conexión concreto. La colección Properties de la clase ConnectionManager proporciona el acceso a estas propiedades. Las propiedades se pueden recuperar de la colección mediante el indizador, o el nombre de propiedad y el método GetValue, y los valores se establecen mediante el método SetValue. Las propiedades de las propiedades de objeto de conexión subyacente también se pueden establecer adquiriendo una instancia real del objeto y estableciendo directamente sus propiedades. Para obtener la conexión subyacente, use la propiedad InnerObject del administrador de conexiones. La siguiente línea de código muestra una línea de C# que crea un administrador de conexiones de ADO.NET con la clase subyacente, ConnectionManagerAdoNetClass.

ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;

Esto convierte el objeto de administrador de conexiones en su objeto de conexión subyacente. Si usa C++, se llama al método QueryInterface del objeto ConnectionManager y se solicita la interfaz del objeto de conexión subyacente.

En la tabla siguiente se enumeran los administradores de conexiones incluidos con Integration Services y la cadena que se usa en la instrucción package.Connections.Add("xxx"). Para obtener una lista de todos los administradores de conexión, vea Conexiones de Integration Services (SSIS).

String Administrador de conexiones
"OLEDB" Administrador de conexiones para conexiones OLE DB.
"ODBC" Administrador de conexiones para conexiones ODBC.
"ADO" Administrador de conexiones para conexiones ADO.
"ADO.NET:SQL" Administrador de conexiones para conexiones ADO.NET (proveedor de datos SQL).
"ADO.NET:OLEDB" Administrador de conexiones para conexiones ADO.NET (proveedor de datos OLE DB).
"FLATFILE" Administrador de conexiones para conexiones de archivos planos.
"FILE" Administrador de conexiones para conexiones de archivos.
"MULTIFLATFILE" Administrador de conexiones para varias conexiones de archivos planos.
"MULTIFILE" Administrador de conexiones para varias conexiones de archivos.
"SQLMOBILE" Administrador de conexiones para conexiones de SQL Server Compact
"MSOLAP100" Administrador de conexiones para conexiones de Analysis Services
"FTP" Administrador de conexiones para conexiones FTP.
"HTTP" Administrador de conexiones para conexiones HTTP.
"MSMQ" Administrador de conexiones para conexiones Message Queuing (también denominado MSMQ).
"SMTP" Administrador de conexiones para conexiones SMTP.
"WMI" Administrador de conexiones para conexiones WMI (Instrumental de administración de Windows).

En el siguiente ejemplo de código se muestra cómo agregar una conexión OLE DB y FILE a la colección Connections de Package. Después, se establecen las propiedades ConnectionString, Name y Description.

using System;
using Microsoft.SqlServer.Dts.Runtime;
  
namespace Microsoft.SqlServer.Dts.Samples
{
  class Program
  {
    static void Main(string[] args)
    {
      // Create a package, and retrieve its connections.
      Package pkg = new Package();
      Connections pkgConns = pkg.Connections;
  
      // Add an OLE DB connection to the package, using the
      // method defined in the AddConnection class.
      CreateConnection myOLEDBConn = new CreateConnection();
      myOLEDBConn.CreateOLEDBConnection(pkg);
  
      // View the new connection in the package.
      Console.WriteLine("Connection description: {0}",
         pkg.Connections["SSIS Connection Manager for OLE DB"].Description);
  
      // Add a second connection to the package.
      CreateConnection myFileConn = new CreateConnection();
      myFileConn.CreateFileConnection(pkg);
  
      // View the second connection in the package.
      Console.WriteLine("Connection description: {0}",
        pkg.Connections["SSIS Connection Manager for Files"].Description);
  
      Console.WriteLine();
      Console.WriteLine("Number of connections in package: {0}", pkg.Connections.Count);
  
      Console.Read();
    }
  }
  // <summary>
  // This class contains the definitions for multiple
  // connection managers.
  // </summary>
  public class CreateConnection
  {
    // Private data.
    private ConnectionManager ConMgr;
  
    // Class definition for OLE DB Provider.
    public void CreateOLEDBConnection(Package p)
    {
      ConMgr = p.Connections.Add("OLEDB");
      ConMgr.ConnectionString = "Provider=SQLOLEDB.1;" +
        "Integrated Security=SSPI;Initial Catalog=AdventureWorks;" +
        "Data Source=(local);";
      ConMgr.Name = "SSIS Connection Manager for OLE DB";
      ConMgr.Description = "OLE DB connection to the AdventureWorks database.";
    }
    public void CreateFileConnection(Package p)
    {
      ConMgr = p.Connections.Add("File");
      ConMgr.ConnectionString = @"\\<yourserver>\<yourfolder>\books.xml";
      ConMgr.Name = "SSIS Connection Manager for Files";
      ConMgr.Description = "Flat File connection";
    }
  }
  
}
Imports Microsoft.SqlServer.Dts.Runtime
  
Module Module1
  
  Sub Main()
  
    ' Create a package, and retrieve its connections.
    Dim pkg As New Package()
    Dim pkgConns As Connections = pkg.Connections
  
    ' Add an OLE DB connection to the package, using the
    ' method defined in the AddConnection class.
    Dim myOLEDBConn As New CreateConnection()
    myOLEDBConn.CreateOLEDBConnection(pkg)
  
    ' View the new connection in the package.
    Console.WriteLine("Connection description: {0}", _
      pkg.Connections("SSIS Connection Manager for OLE DB").Description)
  
    ' Add a second connection to the package.
    Dim myFileConn As New CreateConnection()
    myFileConn.CreateFileConnection(pkg)
  
    ' View the second connection in the package.
    Console.WriteLine("Connection description: {0}", _
      pkg.Connections("SSIS Connection Manager for Files").Description)
  
    Console.WriteLine()
    Console.WriteLine("Number of connections in package: {0}", pkg.Connections.Count)
  
    Console.Read()
  
  End Sub
  
End Module
  
' This class contains the definitions for multiple
' connection managers.
  
Public Class CreateConnection
  ' Private data.
  Private ConMgr As ConnectionManager
  
  ' Class definition for OLE DB provider.
  Public Sub CreateOLEDBConnection(ByVal p As Package)
    ConMgr = p.Connections.Add("OLEDB")
    ConMgr.ConnectionString = "Provider=SQLOLEDB.1;" & _
      "Integrated Security=SSPI;Initial Catalog=AdventureWorks;" & _
      "Data Source=(local);"
    ConMgr.Name = "SSIS Connection Manager for OLE DB"
    ConMgr.Description = "OLE DB connection to the AdventureWorks database."
  End Sub
  
  Public Sub CreateFileConnection(ByVal p As Package)
    ConMgr = p.Connections.Add("File")
    ConMgr.ConnectionString = "\\<yourserver>\<yourfolder>\books.xml"
    ConMgr.Name = "SSIS Connection Manager for Files"
    ConMgr.Description = "Flat File connection"
  End Sub
  
End Class

Salida del ejemplo:

Connection description: OLE DB connection to the AdventureWorks database.

Connection description: Flat File connection.

Number of connections in package: 2

Consulta también