Språk

Lägg till anslutningar programmatiskt

Gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

Klassen ConnectionManager representerar fysiska kopplingar till externa datakällor. Klassen ConnectionManager isolerar implementationsdetaljerna för anslutningen från runtime. Detta gör att körtiden kan interagera med varje anslutningshanterare konsekvent och förutsägbart. Anslutningshanterare innehåller stockegenskaper som alla förbindelser har gemensamt, såsom Name, ID, Description, och ConnectionString. Dock är and-egenskaperna ConnectionStringName vanligtvis de enda egenskaper som krävs för att konfigurera en anslutningshanterare. Till skillnad från andra programmeringsparadigm, där anslutningsklasser exponerar metoder som Open eller Connect för att fysiskt etablera en anslutning till datakällan, hanterar körtidsmotorn alla anslutningar för paketet medan det körs.

Klassen Connections är en samling av anslutningshanterare som har lagts till i paketet och som är tillgängliga för användning vid körning. Du kan lägga till fler anslutningshanterare i samlingen med Add hjälp av samlingens metod och genom att tillhandahålla en sträng som anger anslutningshanterarens typ. Metoden Add returnerar den ConnectionManager instans som lades till i paketet.

Inneboende egenskaper

Klassen ConnectionManager exponerar en uppsättning egenskaper som är gemensamma för alla kopplingar. Ibland behöver man dock tillgång till fastigheter som är unika för just den anslutningstypen. Samlingen Properties av ConnectionManager klassen ger tillgång till dessa egenskaper. Egenskaperna kan hämtas från samlingen med indexeraren eller egenskapsnamnet och GetValue-metoden , och värdena sätts med SetValue-metoden . Egenskaperna hos de underliggande kopplingsobjektets egenskaper kan också sättas genom att skaffa en faktisk instans av objektet och direkt sätta dess egenskaper. För att få den underliggande anslutningen, använd egenskapen InnerObject i anslutningshanteraren. Följande kodrad visar en C#-rad som skapar en ADO.NET-anslutningshanterare med den underliggande klassen, ConnectionManagerAdoNetClass.

ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;

Detta kastar objektet för hanterad anslutningshanterare till dess underliggande anslutningsobjekt. Om du använder C++ anropas QueryInterface-metoden för objektet ConnectionManager och gränssnittet för det underliggande anslutningsobjektet begärs.

Följande tabell listar anslutningshanterare som ingår i Integration Services och den sträng som används i satsen package.Connections.Add("xxx") . För en lista över alla anslutningshanterare, se Integration Services (SSIS) Connections.

String Anslutningshanteraren
"OLEDB" Anslutningshanterare för OLE DB-anslutningar.
"ODBC" Anslutningshanterare för ODBC-anslutningar.
"ADO" Anslutningshanterare för ADO-anslutningar.
"ADO.NET:SQL" Anslutningshanterare för ADO.NET (SQL data provider) anslutningar.
"ADO.NET:OLEDB" Anslutningshanterare för ADO.NET (OLE DB dataleverantör) anslutningar.
"FLATFILE" Anslutningshanterare för flat file-anslutningar.
"FIL" Anslutningshanterare för filanslutningar.
"MULTIFLATFILE" Anslutningshanterare för flera platta filanslutningar.
"MULTIFILE" Anslutningshanterare för flera filanslutningar.
"SQLMOBILE" Anslutningshanterare för SQL Server Compact-anslutningar.
"MSOLAP100" Anslutningshanterare för Analysis Services-anslutningar.
"FTP" Anslutningshanterare för FTP-anslutningar.
HTTP Anslutningshanterare för HTTP-anslutningar.
"MSMQ" Anslutningshanterare för Message Queuing (även känt som MSMQ)-anslutningar.
"SMTP" Anslutningshanterare för SMTP-anslutningar.
"WMI" Anslutningshanterare för Microsoft Windows Management Instrumentation (WMI)-anslutningar.

Följande kodexempel visar hur man lägger till en OLE DB- och FILE-anslutning till samlingen Connections av en Package. Exemplet sätter ConnectionStringsedan , Name, och Description egenskaperna.

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

Exempel på utdata:

Connection description: OLE DB connection to the AdventureWorks database.

Connection description: Flat File connection.

Number of connections in package: 2