Programmgesteuertes Hinzufügen von Verbindungen
Die ConnectionManager-Klasse stellt physische Verbindungen mit externen Datenquellen dar. Durch die ConnectionManager-Klassen werden die Implementierungsdetails der Verbindung von der Laufzeit isoliert. Daher kann die Laufzeit mit den einzelnen Verbindungs-Managern auf eine konsistente, vorhersehbare Weise interagieren. Verbindungs-Manager enthalten eine Reihe von Basiseigenschaften, die alle Verbindungen gemeinsam haben, z. B. die Name-, die ID- Description und die ConnectionString-Eigenschaft. Die ConnectionString-Eigenschaft und die Name-Eigenschaft sind jedoch in der Regel die einzigen Eigenschaften, die zur Konfiguration eines Verbindungs-Managers erforderlich sind. Im Gegensatz zu anderen Programmierungsmodellen, bei denen Verbindungsklassen Methoden wie die Open- oder die Connect-Methode verfügbar machen, um eine physische Verbindung mit der Datenquelle herzustellen, verwaltet das Laufzeitmodul alle Verbindungen für das Paket während der Ausführung.
Die Connections-Klasse ist eine Auflistung der Verbindungs-Manager, die dem Paket hinzugefügt wurden und zur Laufzeit für die Verwendung zur Verfügung stehen. Sie können der Auflistung mithilfe der Add-Methode der Auflistung mehrere Verbindungs-Manager hinzufügen und eine Zeichenfolge bereitstellen, die den Typ des Verbindungs-Managers angibt. Die Add-Methode gibt die ConnectionManager-Instanz zurück, die dem Paket hinzugefügt wurde.
Systeminterne Eigenschaften
Die ConnectionManager-Klasse macht eine Reihe von Eigenschaften verfügbar, die alle Verbindungen gemeinsam haben. In einigen Fällen benötigen Sie jedoch Zugriff auf Eigenschaften, die für den speziellen Verbindungstyp eindeutig sind. Die Properties-Auflistung der ConnectionManager-Klasse bietet Zugriff auf diese Eigenschaften. Die Eigenschaften können mithilfe des Indexers oder des Eigenschaftennamens und der GetValue-Methode aus der Auflistung abgerufen werden, und die Werte werden mithilfe der SetValue-Methode festgelegt. Die Eigenschaften der zugrunde liegenden Verbindungsobjekteigenschaften können auch festgelegt werden, indem eine tatsächliche Instanz des Objekts abgerufen und die Eigenschaften direkt festgelegt werden. Um die zugrunde liegende Verbindung abzurufen, verwenden Sie die InnerObject-Eigenschaft des Verbindungs-Managers. In der folgenden Codezeile ist eine C#-Zeile dargestellt, die von einem ADO.NET-Verbindungs-Manager mit der zugrunde liegenden Klasse, ConnectionManagerAdoNetClass, erstellt wird.
ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;
Dadurch wird das Objekt des verwalteten Verbindungs-Managers in das zugrunde liegende Verbindungsobjekt umgewandelt. Wenn Sie C++ verwenden, wird die QueryInterface-Methode des ConnectionManager-Objekts aufgerufen, und die Oberfläche des zugrunde liegenden Verbindungsobjekts wird angefordert.
In der folgenden Tabelle sind die in Integration Services enthaltenen Verbindungs-Manager sowie die Zeichenfolge aufgeführt, die in der package.Connections.Add("xxx")-Anweisung verwendet wird. Eine Liste aller Verbindungs-Manager finden Sie unter Integration Services-Verbindungen.
Zeichenfolge |
Verbindungs-Manager |
---|---|
„OLEDB“ |
Verbindungs-Manager für OLE DB-Verbindungen. |
„ODBC“ |
Verbindungs-Manager für ODBC-Verbindungen. |
„ADO“ |
Verbindungs-Manager für ADO-Verbindungen. |
„ADO.NET:SQL“ |
Verbindungs-Manager für ADO.NET-Verbindungen (SQL-Datenanbieter). |
„ADO.NET:OLEDB“ |
Verbindungs-Manager für ADO.NET-Verbindungen (OLE DB-Datenanbieter). |
„FLATFILE“ |
Verbindungs-Manager für Flatfileverbindungen. |
„FILE“ |
Verbindungs-Manager für Dateiverbindungen. |
„MULTIFLATFILE“ |
Verbindungs-Manager für mehrere Flatfileverbindungen. |
„MULTIFILE“ |
Verbindungs-Manager für mehrere Dateiverbindungen. |
„SQLMOBILE“ |
Verbindungs-Manager für SQL Server Compact-Verbindungen. |
„MSOLAP100“ |
Verbindungs-Manager für Analysis Services-Verbindungen. |
„FTP“ |
Verbindungs-Manager für FTP-Verbindungen. |
„HTTP“ |
Verbindungs-Manager für HTTP-Verbindungen. |
„MSMQ“ |
Verbindungs-Manager für Message Queuing-Verbindungen (auch bekannt als MSMQ). |
„SMTP“ |
Verbindungs-Manager für SMTP-Verbindungen. |
„WMI“ |
Verbindungs-Manager für WMI (Microsoft Windows Management Instrumentation)-Verbindungen. |
Im folgenden Codebeispiel wird das Hinzufügen einer OLE DB- und Dateiverbindung zur Connections-Auflistung eines Package veranschaulicht. In dem Beispiel werden dann die ConnectionString-Eigenschaft, die Name-Eigenschaft und die Description-Eigenschaft festgelegt.
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
Beispielausgabe:
Connection description: OLE DB connection to the AdventureWorks2008R2 database.
Connection description: OLE DB connection to the AdventureWorks2008R2 database.
Number of connections in package: 2
Externe Ressourcen
Technischer Artikel zu Verbindungszeichenfolgen auf carlprothman.net
|