从服务器向客户端请求数据

启动远程数据访问时通常需要将数据从 Microsoft SQL Server 请求到 SQL Server 2005 Compact Edition (SQL Server Compact Edition) 客户端数据库。将数据从服务器请求到客户端时,请求是由 SQL Server Compact Edition 启动的。SQL Server Compact Edition 从 SQL Server 数据库提取数据,并将其存储在 SQL Server Compact Edition 数据库的表中。

若要从服务器中请求数据,您可以在应用程序中以编程方式配置 RDA。当使用上述任一方法设置和启动请求操作时,将指定以下内容:

  • 要从中请求数据的数据库
  • 连接到 Web 服务器所需的 Web 服务器身份验证。
  • 使用的 SQL Server 身份验证
  • 将被复制并传播到客户端的表
  • 包括跟踪和错误表的请求选项。

跟踪

通过设置适当的跟踪选项,应用程序可以跟踪对 SQL Server Compact Edition 表所做的更改。SQL Server Compact Edition 跟踪所有的插入、更新和删除。

应用程序随后可调用 Push 方法将这些更改传播回最初的 SQL Server 表中。

远程数据访问 (RDA) 跟踪的请求和推送操作使用乐观并发控制。SQL Server 不会锁定请求的记录。应用程序调用 Push 方法时,对本地 SQL Server Compact Edition 数据库所做的更改将无条件应用于 SQL Server 数据库。这可能会使 SQL Server 数据库的其他用户所做的更改丢失。

当所要更新的记录已进行逻辑分区且不会发生冲突时,应使用跟踪的 Pull 和 Push 方法。例如,跟踪的 Pull 和 Push 方法可用在现场服务应用程序中,用于跟踪具有唯一服务呼叫列表的各个技术人员。

RDA_TRACKOPTION 指定 SQL Server Compact Edition 是否应该跟踪对请求表所做的更改。若要在基于 Windows Mobile 的设备上更新请求表,然后将已更改的记录推送回原始 SQL Server 表,请指定 TRACKINGON 或 TRACKINGON_INDEXES。当指定 TRACKINGON 时,将在请求的表上创建 PRIMARY KEY 约束。指定 TRACKINGON_INDEXES 时,会在请求表上创建 PRIMARY KEY 约束和服务器表上存在的其他索引。在这两种情况下,SQL Server Compact Edition 都跟踪在本地表中插入、更新或删除的每个记录。

注意:
仅当请求组成索引的列时,才创建索引。在请求表上不创建引用完整性约束,因为相关表可能存在于也可能不存在于 SQL Server Compact Edition 数据库中。必须通过应用程序内的代码将这些表添加回来。

当应用程序调用 Push 方法时,SQL Server Compact Edition 将使用更改跟踪信息在本地 SQL Server Compact Edition 表中查找插入、更新和删除的记录,并将这些更改传回 SQL Server 表。

当 RDA_TRACKOPTION 设置为 TRACKINGON 或 TRACKINGON_INDEXES 时,将应用下列限制条件:

如果 SELECT 语句返回不可更新的记录集,则会出现错误。

主键必须在 SELECT 语句返回的可更新记录集上定义。SELECT 语句可以引用视图或存储过程,但是引用的视图或存储过程必须仅引用一个表,并且必须是可更新的。

当指定 TRACKINGON_INDEXES 时,将根据 SQLSelectString 中指定的 SQL Server 本地表,创建位于 SQL Server Compact Edition 表上并且与 LocalTableName 中所指定列相关的索引。

请参阅

任务

如何请求数据(以编程方式)

帮助和信息

获取 SQL Server Compact Edition 帮助