Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.