Condividi tramite


Aggiunta di connessioni a livello di programmazione

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 è in grado di interagire con ogni gestione connessione in modo coerente e stimabile. Le gestioni connessione contengono un set di proprietà predefinite comuni a tutte le connessioni, ad esempio Name, ID, Description 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 quali Open o Connect per stabilire fisicamente una connessione all'origine dati, il motore di run-time gestisce tutte le connessioni per il pacchetto mentre è in 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 connessione alla raccolta utilizzando il metodo Add della raccolta e fornendo una stringa che indica il tipo di gestione connessione. Il metodo Add restituisce l'istanza ConnectionManager aggiunta al pacchetto.

Proprietà intrinseche

La classe ConnectionManager espone un set di proprietà comuni a tutte le connessioni. Tuttavia, è talvolta necessario accedere a 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. Nella riga seguente di codice è mostrata una riga C# che crea una gestione connessione ADO.NET che dispone della classe sottostante, ConnectionManagerAdoNetClass.

ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;

Esegue il cast dell'oggetto gestione connessione gestito all'oggetto connessione sottostante. Se si utilizza 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 utilizzata 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: OLE DB connection to the AdventureWorks database.

Number of connections in package: 2

Risorse esterne

Articolo tecnico Connection Strings (stringhe di connessione) su carlprothman.net.

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services
Per i download, gli articoli, gli esempi e i video più recenti di Microsoft, nonché le soluzioni selezionate dalla community, visitare la pagina integration services in MSDN:

Visitare la pagina relativa a Integration Services su MSDN

Per ricevere una notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.

Vedi anche

Connessioni in Integration Services (SSIS)
Creare gestioni connessioni