ISqlSyncMetadataStore 接口

表示使用轻型数据库进行存储的元数据存储区。

interface ISqlSyncMetadataStore : ISyncMetadataStore2

成员

ISqlSyncMetadataStore 方法 说明

ISqlSyncMetadataStore::CreateStore

创建一个元数据存储区文件和一个表示该文件的元数据存储区对象。

ISqlSyncMetadataStore::OpenStore

打开一个现有元数据存储区文件,并返回一个表示该文件的元数据存储区对象。

ISqlSyncMetadataStore::Dispose

释放由 ISqlSyncMetadataStore 对象使用的资源。

备注

元数据存储服务提供了元数据存储服务 API 的完整实现,该实现使用轻型数据库在文件系统指定位置的一个数据库文件中存储同步所需的所有元数据。此实现的入口点为 ISqlSyncMetadataStore。若要获取一个实现此接口的对象,请将 CLSID_SyncMetadataStoreIID_ISqlSyncMetadataStore 传递给 CoCreateInstance 函数。

使用元数据存储服务 API 的实现

  1. 使用 ISqlSyncMetadataStore::CreateStore 创建新的元数据存储区,或使用 ISqlSyncMetadataStore::OpenStore 打开现有的元数据存储区。

  2. 使用 ISyncMetadataStore::InitializeReplicaMetadata 为指定的副本创建元数据,或者使用 ISyncMetadataStore::GetReplicaMetadata 打开现有副本元数据。GetReplicaMetadata 返回一个 IReplicaMetadata 实现,该实现可访问存储在元数据存储区中的副本元数据。

  3. 使用 ISyncMetadataStore::BeginTransaction 开始数据库事务。这样有助于保证在调用此方法后,对元数据所做的变更要么全部保存到数据库中,要么都不保存。

  4. 使用 IReplicaMetadata::CreateNewItemMetadata 创建新的项元数据,或使用如 IReplicaMetadata::FindItemMetadataByGlobalId 的方法查找各个项的元数据。这两种方法都会返回一个 IItemMetadata 实现,该实现可访问存储在元数据存储区中的项元数据。

  5. 对项元数据进行变更,然后使用 IReplicaMetadata::SaveItemMetadata 保存这些变更。

  6. 通过调用 ISyncMetadataStore::CommitTransaction 将变更提交到元数据存储区,或通过调用 ISyncMetadataStore::RollbackTransaction 放弃这些变更。

此 API 实现还针对 IReplicaMetadata 对象提供了方法,可帮助检测已从项存储区中删除的项。例如,IReplicaMetadata::GetUnreportedItems 会返回存在于元数据存储区但不存在于项存储区中的项的列表。然后,提供程序可以将此列表中的项标记为元数据存储区中的逻辑删除。

要求

**头文件:**Metastore.h

请参阅

概念

Sync Framework Metadata Storage Service 组件
存储元数据入门