Implementieren externer Metadaten

Wenn die Verbindung einer Komponente mit einer Datenquelle getrennt ist, können Sie mithilfe der IDTSExternalMetadataColumnCollection100-Schnittstelle die Spalten in den Eingabe- und Ausgabespaltenauflistungen anhand der Spalten der externen Datenquelle überprüfen. Mit dieser Schnittstelle können Sie eine Momentaufnahme der Spalten der externen Datenquelle verwalten und diese Spalten den Eingabe- und Ausgabespaltenauflistungen der Komponente zuordnen.

Die Implementierung externer Metadatenspalten erhöht den Verwaltungsaufwand und die Komplexität bei der Komponentenentwicklung, da Sie eine weitere Spaltenauflistung verwalten und überprüfen müssen. Diese Entwicklungsarbeit kann sich aber lohnen, da Sie teure Roundtrips zum Server zu Überprüfungszwecken vermeiden können.

Auffüllen von externen Metadatenspalten

Externe Metadatenspalten werden der Auflistung meist bei der Erstellung der entsprechenden Eingabe- oder Ausgabespalten hinzugefügt. Neue Spalten werden durch Aufrufen der New-Methode erstellt. Die Eigenschaften der Spalte werden anschließend entsprechend der externen Datenquelle festgelegt.

Die externe Metadatenspalte wird der entsprechenden Eingabe- oder Ausgabespalte durch Zuweisen der ID der externen Metadatenspalte zur ExternalMetadataColumnID-Eigenschaft der Eingabe- oder Ausgabespalte zugeordnet. So können Sie die externe Metadatenspalte für eine spezifische Eingabe- oder Ausgabespalte leicht mithilfe der GetObjectByID-Methode der Auflistung finden.

Im folgenden Beispiel werden die Erstellung einer externen Metadatenspalte und die anschließende Zuordnung der Spalte zu einer Ausgabespalte durch Festlegen der ExternalMetadataColumnID-Eigenschaft veranschaulicht.

public void CreateExternalMetaDataColumn(IDTSOutput100 output, int outputColumnID )
{
    IDTSOutputColumn100 oColumn = output.OutputColumnCollection.GetObjectByID(outputColumnID);
    IDTSExternalMetadataColumn100 eColumn = output.ExternalMetadataColumnCollection.New();

    eColumn.DataType = oColumn.DataType;
    eColumn.Precision = oColumn.Precision;
    eColumn.Scale = oColumn.Scale;
    eColumn.Length = oColumn.Length;
    eColumn.CodePage = oColumn.CodePage;

    oColumn.ExternalMetadataColumnID = eColumn.ID;
}
Public Sub CreateExternalMetaDataColumn(ByVal output As IDTSOutput100, ByVal outputColumnID As Integer) 
 Dim oColumn As IDTSOutputColumn100 = output.OutputColumnCollection.GetObjectByID(outputColumnID) 
 Dim eColumn As IDTSExternalMetadataColumn100 = output.ExternalMetadataColumnCollection.New 
 eColumn.DataType = oColumn.DataType 
 eColumn.Precision = oColumn.Precision 
 eColumn.Scale = oColumn.Scale 
 eColumn.Length = oColumn.Length 
 eColumn.CodePage = oColumn.CodePage 
 oColumn.ExternalMetadataColumnID = eColumn.ID 
End Sub

Überprüfen anhand externer Metadatenspalten

Die Überprüfung erfordert weitere Schritte für Komponenten, die eine externe Metadatenspaltenauflistung verwalten, denn Sie müssen die Überprüfung anhand einer weiteren Spaltenauflistung vornehmen. Bei der Überprüfung kann zwischen einer verbundenen und einer getrennten Überprüfung unterschieden werden.

Verbundene Überprüfung

Besteht eine Verbindung einer Komponente mit einer externen Datenquelle, werden die Spalten in den Eingabe- oder Ausgabeauflistungen direkt anhand der externen Datenquelle überprüft. Darüber hinaus müssen die Spalten in der externen Metadatensammlung überprüft werden. Dies ist erforderlich, da die externe Metadatensammlung unter Erweiterter Editor in SQL Server-Datentools (SSDT) verändert werden kann, und Änderungen, die an der Sammlung vorgenommen werden, nicht erkennbar sind. Daher müssen die Komponenten, wenn eine Verbindung besteht, sicherstellen, dass die Spalten in der externen Metadatensammlung weiterhin den Spalten der externen Datenquelle entsprechen.

Sie können unter Erweiterter Editor die externe Metadatensammlung ausblenden, indem Sie für die IsUsed-Eigenschaft der Sammlung den Wert false festlegen. Dadurch wird jedoch auch die Registerkarte Spaltenzuordnung des Editors ausgeblendet, über die Benutzer Spalten der Eingabe- und Ausgabeauflistungen den Spalten in der externen Metadatenspaltenauflistung zuordnen können. Ein Festlegen dieser Eigenschaft auf den Wert false verhindert nicht, dass Entwickler die Auflistung programmgesteuert verändern, bietet jedoch Schutz für die externe Metadatenspaltenauflistung einer Komponente, die ausschließlich in SQL Server-Datentools (SSDT) verwendet wird.

Getrennte Überprüfung

Ist die Verbindung einer Komponente mit einer externen Datenquelle getrennt, ist die Überprüfung einfacher, da die Spalten in der Eingabe- oder Ausgabeauflistung direkt anhand der Spalten der externen Metadatensammlung und nicht anhand der externen Datenquelle überprüft werden. Eine Komponente sollte eine getrennte Überprüfung ausführen, wenn keine Verbindung mit der externen Datenquelle besteht oder die ValidateExternalMetadata-Eigenschaft den Wert false aufweist.

Im folgenden Codebeispiel wird die Implementierung einer Komponente, die eine Überprüfung anhand der externen Metadatenspaltenauflistung vornimmt, gezeigt.

public override DTSValidationStatus Validate()
{
    if( this.isConnected && ComponentMetaData.ValidateExternalMetaData )
    {
        // TODO: Perform connected validation.
    }
    else
    {
        // TODO: Perform disconnected validation.
    }
}
Public  Overrides Function Validate() As DTSValidationStatus 
 If Me.isConnected AndAlso ComponentMetaData.ValidateExternalMetaData Then 
  ' TODO: Perform connected validation.
 Else 
  ' TODO: Perform disconnected validation.
 End If 
End Function
Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf MSDN auf der Integration Services-Seite:


Abonnieren Sie die auf der Seite verfügbaren RSS-Feeds, um automatische Benachrichtigungen zu diesen Updates zu erhalten.

Siehe auch

Konzepte

Datenfluss