Compartilhar via


Adicionando conexões programaticamente

A classe ConnectionManager representa conexões físicas a fontes de dados externas. A classe ConnectionManager isola os detalhes de implementação da conexão do tempo de execução. Isso permite que o tempo de execução interaja com cada gerenciador de conexões de uma maneira consistente e previsível. Gerenciadores de conexões contêm um conjunto de propriedades de estoque que todas as conexões têm em comum, como Name, ID, Description e ConnectionString. Porém, as propriedades ConnectionString e Name são, ordinariamente, as únicas propriedades necessárias para configurar um gerenciador de conexões. Ao contrário de outros paradigmas de programação, em que as classes de conexão expõem métodos como Open ou Connect para estabelecer fisicamente uma conexão com a fonte de dados, o mecanismo de tempo de execução gerencia todas as conexões para o pacote enquanto ele é executado.

A classe Connections é uma coleção dos gerenciadores de conexões que foram adicionados ao pacote e estão disponíveis para uso em tempo de execução. É possível adicionar mais gerenciadores de conexões à coleção usando o método Add da coleção e fornecendo uma cadeia de caracteres que indica o tipo de gerenciador de conexões. O método Add retorna a instância ConnectionManager que foi acrescentada ao pacote.

Propriedades intrínsecas

A classe ConnectionManager expõe um conjunto de propriedades que são comuns a todas as conexões. Porém, às vezes você precisa de acesso a propriedades que são exclusivas ao tipo de conexão específico. A coleção Properties da classe ConnectionManager fornece acesso a essas propriedades. As propriedades podem ser recuperadas da coleção usando o indexador ou o nome da propriedade e o método GetValue, e os valores são definidos usando o método SetValue. As propriedades das propriedades do objeto de conexão subjacente também podem ser definidas adquirindo-se uma instância real do objeto e definindo suas propriedades diretamente. Para obter a conexão subjacente, use a propriedade InnerObject do gerenciador de conexões. A linha de código seguinte mostra uma linha C# que cria um gerenciador de conexões ADO.NET que tem a classe subjacente ConnectionManagerAdoNetClass.

ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;

Isso converte o objeto do gerenciador de conexões gerenciado em seu objeto de conexão subjacente. Se você estiver usando C++, o método QueryInterface do objeto ConnectionManager será chamado e a interface do objeto de conexão subjacente será requisitado.

A tabela a seguir lista os gerenciadores de conexões incluídos no Integration Services e a cadeia de caracteres usada na instrução package.Connections.Add("xxx"). Para obter uma lista de todos os gerenciadores de conexões, consulte Conexões do Integration Services.

String

Gerenciador de conexões

"OLEDB"

Gerenciador de conexões para conexões OLE DB.

"ODBC"

Gerenciador de conexões para conexões ODBC.

"ADO"

Gerenciador de conexões para conexões ADO.

"ADO.NET:SQL"

Gerenciador de conexões para conexões ADO.NET (provedor de dados SQL).

"ADO.NET:OLEDB"

Gerenciador de conexões para conexões ADO.NET (provedor de dados OLE DB).

"FLATFILE"

Gerenciador de conexões para conexões de arquivo simples.

"FILE"

Gerenciador de conexões para conexões de arquivo.

"MULTIFLATFILE"

Gerenciador de conexões para múltiplas conexões de arquivo simples.

"MULTIFILE"

Gerenciador de conexões para múltiplas conexões de arquivo.

"SQLMOBILE"

Gerenciador de conexões para conexões SQL Server Compact.

"MSOLAP100"

Gerenciador de conexões para conexões Analysis Services.

"FTP"

Gerenciador de conexões para conexões FTP.

"HTTP"

Gerenciador de conexões para conexões HTTP.

"MSMQ"

Gerenciador de conexões para conexões do serviço de enfileiramento de mensagens (também conhecido como MSMQ).

"SMTP"

Gerenciador de conexões para conexões SMTP.

"WMI"

Gerenciador de conexões para conexões do Microsoft Windows Management Instrumentation (WMI).

O exemplo de código a seguir demonstra como adicionar uma conexão OLE DB e FILE à coleção Connections de um Package. Em seguida, o exemplo define as propriedades ConnectionString, Name e 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

Exemplo de saída:

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

Artigo técnico, Connection Strings, em carlprothman.net.

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os downloads, artigos, exemplos e vídeos mais recentes da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática sobre essas atualizações, assine os feeds RSS disponíveis na página.