Agregar conexiones mediante programación
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 habilita al tiempo de ejecución para que interactúe con cada administrador de conexiones de una manera coherente y de predicción. 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 Name y ConnectionString 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 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 que tiene 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 conexión que se incluyen en Integration Services y la cadena que se utiliza en la instrucción package.Connections.Add("xxx"). Para obtener una lista de todos los administradores de conexiones, vea Conexiones de Integration Services.
Cadena |
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 SQL Server Compact. |
"MSOLAP100" |
Administrador de conexiones para conexiones 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=AdventureWorks2008R2;" +
"Data Source=(local);";
ConMgr.Name = "SSIS Connection Manager for OLE DB";
ConMgr.Description = "OLE DB connection to the AdventureWorks2008R2 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=AdventureWorks2008R2;" & _
"Data Source=(local);"
ConMgr.Name = "SSIS Connection Manager for OLE DB"
ConMgr.Description = "OLE DB connection to the AdventureWorks2008R2 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 de ejemplo:
Connection description: OLE DB connection to the AdventureWorks2008R2 database.
Connection description: OLE DB connection to the AdventureWorks2008R2 database.
Number of connections in package: 2
Recursos externos
Artículo técnico, Connection Strings, en carlprothman.net.
|