Condividi tramite


Aggiungere connessioni a livello di codice

Si applica a: SQL Server SSIS Integration Runtime in Azure Data Factory

La classe ConnectionManager rappresenta le connessioni fisiche alle origini dati esterne. La classe ConnectionManager isola i dettagli di implementazione della connessione dal runtime. In questo modo il runtime può interagire con ogni gestione connessione in modo coerente e prevedibile. Le gestioni connessioni contengono proprietà azionarie che tutte le connessioni hanno in comune, ad esempio Name, IDDescription, e ConnectionString. Le proprietà ConnectionString e Name, tuttavia, sono in genere le uniche necessarie per configurare una gestione connessione. A differenza di altri paradigmi di programmazione, in cui le classi di connessione espongono metodi come Open o Connect per stabilire una connessione all'origine dati fisicamente, il motore di runtime gestisce tutte le connessioni per il pacchetto durante l'esecuzione.

La classe Connections è una raccolta delle gestioni connessione aggiunte a tale pacchetto e disponibili per essere utilizzate in fase di esecuzione. È possibile aggiungere altre gestioni connessioni alla raccolta usando il Add metodo della raccolta e specificare una stringa che indica il tipo di gestione connessione. Il metodo Add restituisce l'istanza ConnectionManager aggiunta al pacchetto.

Proprietà intrinseche

La ConnectionManager classe espone un set di proprietà comuni a tutte le connessioni. Tuttavia, a volte è necessario accedere alle proprietà univoche per il tipo di connessione specifico. La raccolta Properties della classe ConnectionManager fornisce l'accesso a queste proprietà. È possibile recuperare le proprietà dalla raccolta usando l'indicizzatore o il nome della proprietà e il metodo GetValue, mentre i valori vengono impostati usando il metodo SetValue. È possibile impostare le proprietà delle proprietà dell'oggetto connessione sottostante anche acquisendo un'istanza effettiva dell'oggetto e impostandone direttamente le proprietà. Per ottenere la connessione sottostante, utilizzare la proprietà InnerObject della gestione connessione. La riga di codice seguente mostra una riga C# che crea una gestione connessione ADO.NET con la classe sottostante , ConnectionManagerAdoNetClass.

ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;

Esegue il cast dell'oggetto gestione connessione gestito all'oggetto connessione sottostante. Se si usa C++, viene chiamato il metodo QueryInterface dell'oggetto ConnectionManager e viene richiesta l'interfaccia dell'oggetto connessione sottostante.

Nella tabella seguente sono elencate le gestioni connessioni incluse in Integration Services e la stringa usata nell'istruzione package.Connections.Add("xxx") . Per un elenco di tutte le gestioni connessioni, vedere Connessioni di Integration Services (SSIS).

String Connection manager
"OLEDB" Gestione connessione per le connessioni OLE DB.
"ODBC" Gestione connessione per le connessioni ODBC.
"ADO" Gestione connessione per le connessioni ADO.
"ADO.NET:SQL" Gestione connessione per le connessioni ADO.NET (provider di dati SQL).
"ADO.NET:OLEDB" Gestione connessione per le connessioni ADO.NET (provider di dati OLE DB).
"FLATFILE" Gestione connessione per le connessioni file flat.
"FILE" Gestione connessione per le connessioni file.
"MULTIFLATFILE" Gestione connessione per le connessioni di più file flat.
"MULTIFILE" Gestione connessione per le connessioni di più file.
"SQLMOBILE" Gestione connessione per connessioni SQL Server Compact.
"MSOLAP100" Gestione connessione per connessioni Analysis Services.
"FTP" Gestione connessione per le connessioni FTP.
"HTTP" Gestione connessione per le connessioni HTTP.
"MSMQ" Gestione connessione per le connessioni di accodamento messaggi (anche noto come MSMQ).
"SMTP" Gestione connessione per le connessioni SMTP.
"WMI" Gestione connessione per le connessioni Strumentazione gestioneWindows (WMI) di Microsoft.

Nell'esempio di codice seguente è illustrata l'aggiunta di una connessione FILE e OLE DB alla raccolta Connections di un oggetto Package. Nell'esempio vengono quindi impostate le proprietà 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=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

Esempio di output

Connection description: OLE DB connection to the AdventureWorks database.

Connection description: Flat File connection.

Number of connections in package: 2

Vedi anche