ISyncMetadataStoreSerializer::DeserializeReplicaMetadata
Deserialisiert den Inhalt einer kanonischen Metadatendatei in einen Metadaten-Speicherdienstspeicher. Aktualisiert optional das Metadaten-Speicherformat, wenn sich die Anbieterversion ändert.
HRESULT DeserializeReplicaMetadata(
IStream * pStream,
DWORD dwExpectedProviderCompatibilityVersion,
IProviderMetadataUpgradeCallback * pProviderUpgradeCallback);
Parameter
- pStream
[in] Der Stream, der die serialisierten Metadaten für ein bestimmtes Replikat enthält.
- dwExpectedProviderCompatibilityVersion
[in] Die Anbieterkompatibilitätsversion, die in der kanonischen Metadatendatei enthalten sein sollte. Wenn die erwartete Version nicht zur tatsächlichen Version passt, schlägt die Deserialisierung entweder fehl, wenn pProviderUpgradeCallback NULL ist, oder pProviderUpgradeCallback-Methoden werden aufgerufen, wenn pProviderUpgradeCallback nicht NULL ist. Weitere Informationen finden Sie unter Zugreifen auf Metadaten von Komponenten anderer Versionen und Aktualisieren der Metadatenspeicherversion.
- pProviderUpgradeCallback
[in] Rückrufmethoden, die aufgerufen werden, wenn das Metadaten-Speicherformat aktualisiert werden muss, da die in den serialisierten Metadaten enthaltene Anbieterversion nicht die gleiche wie dwExpectedProviderCompatibilityVersion ist.
Rückgabewert
S_OK.
S_FALSE, wenn der höchste Taktanzahlwert im serialisierten Stream kleiner als oder gleich dem höchsten Taktanzahlwert im Metadatenspeicher ist. In diesem Fall gibt es keine weiteren zu deserialisierenden Metadaten.
E_OUTOFMEMORY
E_POINTER
SYNC_E_INVALIDOPERATION, wenn die Methode ohne geöffneten Metadatenspeicher aufgerufen wird.
SYNC_E_METADATA_ACTIVE_TRANSACTION_REQUIRED, wenn keine Transaktion verfügbar ist, in der Metadaten deserialisiert werden können.
SYNC_E_METADATA_STORE_DESERIALIZATION_ERROR, wenn während der Deserialisierung Dateiformatfehler auftreten oder wenn der Inhalt der Datei nicht mit dem Schema des Zielreplikats kompatibel ist.
SYNC_E_METADATA_STORE_DESERIALIZATION_PROVIDER_VERSION_MISMATCH, wenn die für dwExpectedProviderCompatibilityVersion angegebene Anbieterkompatibilitätsversion nicht mit der Version übereinstimmt, die in der kanonischen Metadatendatei angegebenen wurde, und pProviderUpgradeCallback den Wert NULL aufweist.
Hinweise
Drei Bedingungen müssen erfüllt sein, bevor diese Methode aufgerufen wird:
Der Metadatenspeicher muss geöffnet sein. Öffnen Sie einen Speicher, indem Sie ISqlSyncMetadataStore::OpenStore oder ISqlSyncMetadataStore::CreateStore aufrufen.
Das Replikat, für das Daten deserialisiert werden, muss seinen Metadatenspeicher bereits initialisiert haben. Um einen Metadatenspeicher zu initialisieren, rufen Sie ISyncMetadataStore::InitializeReplicaMetadata auf.
Auf dem ISqlSyncMetadataStore-Objekt muss eine aktive Transaktion verfügbar sein. Starten Sie eine Transaktion, indem Sie ISyncMetadataStore::BeginTransaction aufrufen.
Wenn diese Methode aufgerufen wird und eine dieser Bedingungen nicht erfüllt ist, wird ein Fehlerwert zurückgegeben.
Diese Methode kann als Teil der Prozedur zum Aktualisieren des Metadatenschemas verwendet werden, wenn sich die Anbieterversion ändert. Weitere Informationen finden Sie unter Aktualisieren der Metadatenspeicherversion.