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