Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Środowisko SSIS Integration Runtime w usłudze Azure Data Factory
Nie musisz implementować niestandardowej trwałości dla niestandardowych obiektów, o ile ich właściwości wykorzystują tylko proste typy danych, takie jak liczba całkowita i ciąg tekstów. Domyślna implementacja trwałości zapisuje metadane twojego obiektu wraz z wartościami wszystkich jego właściwości.
Jednak jeśli Twój obiekt ma właściwości wykorzystujące złożone typy danych lub jeśli chcesz przeprowadzić niestandardowe przetwarzanie wartości właściwości podczas ich ładowania i zapisywania, możesz zaimplementować IDTSComponentPersist interfejs oraz jego LoadFromXMLSaveToXML metody i metody. W tych metodach ładujesz z definicji XML pakietu (lub zapisujesz do) fragmentu XML zawierającego właściwości twojego obiektu i ich aktualne wartości. Format tego fragmentu XML nie jest określony; musi to być tylko dobrze uformowany XML.
Ważna
Gdy implementujesz niestandardową trwałość, musisz zachować wszystkie właściwości obiektu, w tym zarówno odziedziczone, jak i własne, które dodałeś.
Example
Chociaż Przykładowy Sql Server Custom Menedżer połączeń nie wymaga niestandardowej trwałości dla swoich trzech właściwości typu string, poniższy kod pokazuje przykład niestandardowego kodu potrzebnego do zachowania connection manager i jego właściwości. Klasa zawierająca ten kod musi implementować interfejs.IDTSComponentPersist
Private Const PERSIST_ELEMENT As String = "SqlConnectionManager"
Private Const PERSIST_SERVER As String = "Server"
Private Const PERSIST_DATABASE As String = "Database"
Private Const PERSIST_CONNECTIONSTRING As String = "ConnectionString"
Public Sub LoadFromXML(ByVal node As System.Xml.XmlElement, _
ByVal infoEvents As Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) _
Implements Microsoft.SqlServer.Dts.Runtime.IDTSComponentPersist.LoadFromXML
Dim propertyNode As XmlNode
' Make sure that the correct node is being loaded.
If node.Name <> PERSIST_ELEMENT Then
Throw New Exception("Persisted element is not of type " & PERSIST_ELEMENT)
End If
' Load the three properties of the object from XML into variables.
For Each propertyNode In node.ChildNodes
Select Case propertyNode.Name
Case PERSIST_SERVER
_serverName = propertyNode.InnerText
Case PERSIST_DATABASE
_databaseName = propertyNode.InnerText
Case PERSIST_CONNECTIONSTRING
_connectionString = propertyNode.InnerText
End Select
Next
End Sub
Public Sub SaveToXML(ByVal doc As System.Xml.XmlDocument, _
ByVal infoEvents As Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents) _
Implements Microsoft.SqlServer.Dts.Runtime.IDTSComponentPersist.SaveToXML
Dim elementRoot As XmlElement
Dim propertyNode As XmlNode
' Create a new node to persist the object and its properties.
elementRoot = doc.CreateElement(String.Empty, PERSIST_ELEMENT, String.Empty)
' Save the three properties of the object from variables into XML.
propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_SERVER, String.Empty)
propertyNode.InnerText = _serverName
elementRoot.AppendChild(propertyNode)
propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_DATABASE, String.Empty)
propertyNode.InnerText = _databaseName
elementRoot.AppendChild(propertyNode)
propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_CONNECTIONSTRING, String.Empty)
propertyNode.InnerText = _connectionString
elementRoot.AppendChild(propertyNode)
doc.AppendChild(elementRoot)
End Sub
private const string PERSIST_ELEMENT = "SqlConnectionManager";
private const string PERSIST_SERVER = "Server";
private const string PERSIST_DATABASE = "Database";
private const string PERSIST_CONNECTIONSTRING = "ConnectionString";
public void LoadFromXML(System.Xml.XmlElement node,
Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
{
// Make sure that the correct node is being loaded.
if (node.Name != PERSIST_ELEMENT)
{
throw new Exception("Persisted element is not of type " + PERSIST_ELEMENT);
}
// Save the three properties of the object from variables into XML.
foreach (XmlNode propertyNode in node.ChildNodes)
{
switch (propertyNode.Name)
{
case PERSIST_SERVER:
_serverName = propertyNode.InnerText;
break;
case PERSIST_DATABASE:
_databaseName = propertyNode.InnerText;
break;
case PERSIST_CONNECTIONSTRING:
_connectionString = propertyNode.InnerText;
break;
}
}
}
public void SaveToXML(System.Xml.XmlDocument doc,
Microsoft.SqlServer.Dts.Runtime.IDTSInfoEvents infoEvents)
{
XmlElement elementRoot;
XmlNode propertyNode;
// Create a new node to persist the object and its properties.
elementRoot = doc.CreateElement(String.Empty, PERSIST_ELEMENT, String.Empty);
// Save the three properties of the object from variables into XML.
propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_SERVER, String.Empty);
propertyNode.InnerText = _serverName;
elementRoot.AppendChild(propertyNode);
propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_DATABASE, String.Empty);
propertyNode.InnerText = _databaseName;
elementRoot.AppendChild(propertyNode);
propertyNode = doc.CreateNode(XmlNodeType.Element, PERSIST_CONNECTIONSTRING, String.Empty);
propertyNode.InnerText = _connectionString;
elementRoot.AppendChild(propertyNode);
doc.AppendChild(elementRoot);
}