如何:将数据同步配置为使用 SQL Server 更改跟踪

更新:2007 年 11 月

在 Visual Studio 2008 SP1 中,已经添加了对于 SQL Server 2008 中更改跟踪功能的支持。在配置 Synchronization Services 的过程中启用 SQL Server 更改跟踪的功能除了添加到“数据源配置向导”中,还添加到了“配置数据同步”对话框中。

说明:

只有在远程数据库服务器配置为连接到 SQL Server 2008 数据库时,启用 SQL Server 更改跟踪的选项才会变为可用。

使用“配置数据同步”对话框启用 SQL Server 更改跟踪

下列过程提供在使用“配置数据同步”对话框配置 Synchronization Services 时,为了配置数据同步和启用 SQL Server 更改跟踪而必须遵循的步骤。有关在“配置数据同步”对话框中使用实际数据和配置同步的示例,请参见演练:创建偶尔连接的应用程序

说明:

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置

使用“配置数据同步”对话框配置数据同步

  1. 在“项目”菜单上单击“添加新项”。

  2. 单击“本地数据库缓存”模板。

  3. 保留默认名称“LocalDataCache1.sync”,或提供其他名称。

  4. 单击“添加”。

    随即会将 .sync 文件添加到项目中,并打开“配置数据同步”对话框。

  5. 将“服务器连接”设置为要连接到的远程 SQL Server 2008 数据库。

  6. 将“客户端连接”设置为将在本地存储数据的本地 SQL Server Compact 3.5 数据库。如果没有本地数据库,可以保留“数据库名称.sdf (新建)”的默认设置,以便在项目中创建一个新数据库。新数据库的名称基于服务器上数据库的名称。

    说明:

    默认情况下,“确定”按钮处于禁用状态。在向“缓存的表”区域中添加表后,该按钮将启用。

  7. 选择“使用 SQL Server 更改跟踪”[Use SQL Server change tracking]。默认情况下,当“服务器连接”设置为 SQL Server 2008 数据库时,此选项处于选中状态。

  8. 单击“添加”以打开“配置供脱机使用的表”对话框。

  9. 选择要添加到本地数据库缓存中的表,然后配置同步模式(在同步时要下载的数据):

    要下载的数据:

    • 首次同步之后的新更改和增量更改

      此设置用于从服务器中检索自上次同步数据以来修改过的记录。首次调用同步时,将下载整个表。

    • 每次更新整个表

      此设置将本地表替换为服务器上的当前版本。

      说明:

      为要配置为脱机使用的每个表设置同步模式。只有当 SQL Server 更改跟踪未启用时,其他处于禁用状态的选项才可用。

  10. 单击“确定”。

  11. 单击“显示代码示例”打开“代码示例”对话框,其中提供了启动同步过程的代码示例。您可以将这段代码复制到剪贴板中,然后将其粘贴到程序内。

  12. 此外,还可以设置“高级”选项。

    利用“配置数据同步”对话框中的“高级”选项所提供的设置,可以控制是单独同步每个表,还是在一个事务中同步所有表。这些选项还允许为 n 层应用程序分离代码。

    • “在单个事务中同步表”。默认情况下,此选项处于清除状态,所有表都是单独进行同步的。如果遇到错误,则只有发生错误的表回滚更改。如果选中此选项,将在一个事务中同步所有表。如果遇到错误,则会为所有表回滚全部更改。

    • “创建同步组件”。默认情况下,会同时为客户端和服务器生成同步组件。您可以将此选项设置为“仅客户端”或“仅服务器”,以满足应用程序的需要。

    • “服务器项目位置”。默认情况下,将在当前项目中生成服务器的同步组件。请将此选项设置为在解决方案的任意 Visual Basic 或 Visual C# 项目中生成服务器的同步组件。

    • “客户端项目位置”。默认情况下,将在当前项目中生成客户端的同步组件。请将此选项设置为在解决方案的任意 Visual Basic 或 Visual C# 项目中生成客户端的同步组件。

  13. 单击“确定”。

  14. 如果某个本地缓存表的同步模式设置为“首次同步之后的新更改和增量更改”,则需要对 SQL Server 数据库进行更新,而且会打开“生成 SQL 脚本”对话框。默认情况下,该对话框中的两个选项均处于选中状态:

    • 为增量更改更新服务器。选中该选项可自动更新服务器,以便在关闭该对话框之后立即启用增量同步。

    • 在项目中保存 SQL 脚本供以后使用。选中该选项可将所生成的 SQL 脚本添加到项目中,以便可以在以后针对 SQL Server 数据库执行它们。还会生成撤消脚本并将它们添加到项目中。

  15. 单击“确定”。

    说明:

    除非将服务器更新为启用更改跟踪,否则 SQL Server 更改跟踪将一直处于禁用状态。

    单击“确定”之后,“数据源配置向导”将打开“选择数据库对象”页。(每次将本地数据库文件添加到项目时,都会自动打开数据源配置向导。)

  16. 选择要添加到类型化数据集的表。

  17. 单击“完成”。

使用“配置数据同步”对话框配置数据同步之后,必须向应用程序中添加用来启动同步的代码。

说明:

同步数据时,将更新本地数据库,而不会更新数据集内的表或应用程序中的任何其他对象。请记住,应以本地数据库中已更新的数据重新加载应用程序数据源。例如,调用 TableAdapter.Fill 方法以本地数据库中已更新的数据加载数据集的数据表。

添加用来启动同步的代码

  • 如果您已在前面的部分中复制了“代码示例”对话框中的代码,现在只需将其粘贴到应用程序中即可。否则,您可以在应用程序中要启动同步过程的任意位置插入下面的代码:

    ' Call SyncAgent.Synchronize() to initiate the synchronization process.
    ' Synchronization only updates the local database, not your project's data source.
    Dim syncAgent As LocalDataCache1SyncAgent = New LocalDataCache1SyncAgent()
    Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize()
    
    ' Add code here to refill your application's data source
    ' with the updated data from the local database.
    
    // Call SyncAgent.Synchronize() to initiate the synchronization process.
    // Synchronization only updates the local database, not your project's data source.
    LocalDataCache1SyncAgent syncAgent = new LocalDataCache1SyncAgent();
    Microsoft.Synchronization.Data.SyncStatistics syncStats =
    syncAgent.Synchronize();
    
    // Add code to refill your application's data source
    // with the updated data from the local database.
    

使用数据源配置向导启用 SQL Server 更改跟踪

下列过程提供在使用数据源配置向导配置类型化数据集时,为了配置数据同步和启用 SQL Server 更改跟踪而必须遵循的步骤。

有关使用实际数据,演示在借助于数据源配置向导创建类型化数据集时如何配置同步的示例,请参见演练:使用数据源配置向导创建偶尔连接的应用程序

使用数据源配置向导将数据同步配置为使用 SQL Server 更改跟踪

  1. 在“数据”菜单上单击“显示数据源”。

  2. 在“数据源”窗口中,单击“添加新数据源”打开数据源配置向导。

  3. 在“选择数据源类型”页上,使默认值“数据库”保持选中状态,然后单击“下一步”。

  4. 在“选择您的数据连接”页上执行下列步骤之一:

    • 如果下拉列表中包含到所需的 SQL Server 2008 版数据库的数据连接,请选择该连接。

      - 或 -

    • 单击“新建连接”打开“选择数据源”或“添加/修改连接”对话框并新建与 SQL Server 2008 数据库的连接。有关更多信息,请参见“添加/修改连接”对话框(通用)

  5. 如果数据库需要密码,请选择该选项以包括敏感数据,再单击“下一步”。

  6. 在“将连接字符串保存到应用程序配置文件中”页上单击“下一步”。

  7. 在“选择数据库对象”页面上展开“表”节点。

  8. 选择要添加到本地数据库缓存的表。

  9. 选中“启用本地数据库缓存”。

  10. 在“选择数据库对象”页上单击“下一步”。

  11. 在“选择要缓存的表”页上选择要缓存的表。

  12. 设置“同步模式”。

    • 首次同步之后的新更改和增量更改

      此设置用于从服务器中检索自上次同步数据以来修改过的记录。首次调用同步时,将下载整个表。

    • 每次更新整个表

      此设置将本地表替换为服务器上的当前版本。

  13. 选择“使用 SQL Server 更改跟踪”[Use SQL Server change tracking]。默认情况下,当“服务器连接”设置为 SQL Server 2008 数据库时,此选项处于选中状态。

  14. 单击“完成”。

  15. 如果某个本地缓存表的同步模式设置为“首次同步之后的新更改和增量更改”,则需要对 SQL Server 数据库进行更新,而且会打开“生成 SQL 脚本”对话框。默认情况下,该对话框中的两个选项均处于选中状态:

    • 为增量更改更新服务器。选中该选项可自动更新服务器,以便在关闭该对话框之后立即启用增量同步。

    • 在项目中保存 SQL 脚本供以后使用。选中该选项可将所生成的 SQL 脚本添加到项目中,以便可以在以后针对 SQL Server 数据库执行它们。还会生成撤消脚本并将它们添加到项目中。

  16. 单击“确定”。

    说明:

    除非将服务器更新为启用更改跟踪,否则 SQL Server 更改跟踪将一直处于禁用状态。

完成数据源配置向导之后,必须向应用程序中添加用来启动同步的代码。

说明:

同步数据时,将更新本地数据库,而不会更新数据集内的表或应用程序中的任何其他对象。请记住,应以本地数据库中已更新的数据重新加载应用程序数据源。例如,调用 TableAdapter.Fill 方法以本地数据库中已更新的数据加载数据集的数据表。

添加用来启动同步的代码

  • 在应用程序中要启动同步过程的任意位置插入下面的代码:

    ' Call SyncAgent.Synchronize() to initiate the synchronization process.
    ' Synchronization only updates the local database, not your project's data source.
    Dim syncAgent As LocalDataCache1SyncAgent = New LocalDataCache1SyncAgent()
    Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize()
    
    ' Add code here to refill your application's data source
    ' with the updated data from the local database.
    
    // Call SyncAgent.Synchronize() to initiate the synchronization process.
    // Synchronization only updates the local database, not your project's data source.
    LocalDataCache1SyncAgent syncAgent = new LocalDataCache1SyncAgent();
    Microsoft.Synchronization.Data.SyncStatistics syncStats =
    syncAgent.Synchronize();
    
    // Add code to refill your application's data source
    // with the updated data from the local database.
    

请参见

任务

演练:创建偶尔连接的应用程序

演练:将偶尔连接的客户端应用程序与本地数据库一起部署

偶尔连接的数据示例

概念

偶尔连接的应用程序概述

其他资源

偶尔连接的应用程序

修订记录

日期

修订

原因

2008 年 7 月

新增主题。

SP1 功能更改。