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 utilizzando l'indicizzatore o il nome della proprietà e il metodo GetValue e i valori vengono impostati utilizzando 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 in Integration Services.

Stringa

Gestione connessione

"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 le connessioni SQL Server Compact.

"MSOLAP100"

Gestione connessione per le 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 gestione Windows (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=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

Output di esempio:

Connection description: OLE DB connection to the AdventureWorks2008R2 database.

Connection description: OLE DB connection to the AdventureWorks2008R2 database.

Number of connections in package: 2

Risorse esterne

Articolo tecnico relativo alle stringhe di connessione, disponibile su carlprothman.net

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per informazioni sui download, gli articoli, gli esempi e i video Microsoft più recenti, nonché sulle soluzioni selezionate dalla community, visitare la pagina Integration Services su MSDN o TechNet:

Per ricevere notifiche automatiche su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.