ISyncMetadataStoreSerializer::DeserializeReplicaMetadata
Désérialise le contenu d'un fichier de métadonnées canonique vers un magasin du service de stockage des métadonnées. Met éventuellement à niveau le format du magasin des métadonnées lorsque la version du fournisseur change.
HRESULT DeserializeReplicaMetadata(
IStream * pStream,
DWORD dwExpectedProviderCompatibilityVersion,
IProviderMetadataUpgradeCallback * pProviderUpgradeCallback);
Paramètres
- pStream
[in] Flux qui contient les métadonnées sérialisées pour un réplica particulier.
- dwExpectedProviderCompatibilityVersion
[in] Version de compatibilité du fournisseur devant être incluse dans le fichier de métadonnées canonique. Si la version attendue ne correspond pas à la version réelle, la désérialisation échoue par conception lorsque pProviderUpgradeCallback est NULL ou les méthodes pProviderUpgradeCallback sont appelées lorsque pProviderUpgradeCallback n'est pas NULL. Pour plus d'informations, consultez Accès aux métadonnées à partir de composants de versions différentes et Mise à niveau de la version de magasin des métadonnées.
- pProviderUpgradeCallback
[in] Méthodes de rappel appelées lorsque le format du magasin des métadonnées doit être mis à niveau parce que la version de fournisseur contenue dans les métadonnées sérialisées n'est pas identique à dwExpectedProviderCompatibilityVersion.
Valeur de retour
S_OK.
S_FALSE si la valeur du nombre de cycles la plus élevée dans le flux sérialisé est inférieure ou égale à la valeur du nombre de cycles la plus élevée dans le magasin des métadonnées. Dans ce cas, il n'y a pas de métadonnées supplémentaires à désérialiser.
E_OUTOFMEMORY
E_POINTER
SYNC_E_INVALIDOPERATION si la méthode est appelée sans un magasin des métadonnées ouvert.
SYNC_E_METADATA_ACTIVE_TRANSACTION_REQUIRED si une transaction dans laquelle désérialiser les métadonnées n'est pas disponible.
SYNC_E_METADATA_STORE_DESERIALIZATION_ERROR si des erreurs de format de fichier se produisent pendant la désérialisation ou si le contenu du fichier est incompatible avec le schéma du réplica cible.
SYNC_E_METADATA_STORE_DESERIALIZATION_PROVIDER_VERSION_MISMATCH si la version de compatibilité du fournisseur spécifiée pour dwExpectedProviderCompatibilityVersion ne correspond pas à la version spécifiée dans le fichier de métadonnées canonique et que pProviderUpgradeCallback est NULL.
Notes
Trois conditions doivent être remplies avant l'appel de cette méthode :
Le magasin des métadonnées doit être ouvert. Ouvrez un magasin en appelant ISqlSyncMetadataStore::OpenStore ou ISqlSyncMetadataStore::CreateStore.
Le magasin des métadonnées du réplica pour lequel les données sont désérialisées doit déjà être initialisé. Pour initialiser un magasin des métadonnées, appelez ISyncMetadataStore::InitializeReplicaMetadata.
Une transaction active doit être disponible sur l'objet ISqlSyncMetadataStore. Démarrez une transaction en appelant ISyncMetadataStore::BeginTransaction.
L'appel de cette méthode lorsqu'une de ces conditions n'est pas remplie entraîne une valeur de retour d'erreur.
Cette méthode peut être utilisée dans le cadre de la procédure de mise à niveau du schéma de métadonnées lorsque la version du fournisseur change. Pour plus d'informations, consultez Mise à niveau de la version de magasin des métadonnées.