记录集:再次查询记录集 (ODBC)

本主题适用于 MFC ODBC 类。

本主题介绍如何使用记录集对象从数据库重新查询(即刷新)自身,以及查询何时可能需要使用 Requery 成员函数执行此操作。

重新查询记录集的主要原因是:

  • 将记录集更新到你或其他用户添加的记录以及其他用户删除的记录(你删除的记录已反映在记录集中)。

  • 基于更改参数值刷新记录集。

使记录集保持最新

通常,需要重新查询记录集对象以使其更新。 在多用户数据库环境中,其他用户可以在记录集的生命周期内对数据进行更改。 详细了解记录集何时反映其他用户所做的更改以及其他用户的记录集何时反映你的更改,请参阅记录集:记录集如何更新记录 (ODBC)动态集

基于新参数重新查询

另一种频繁使用(同样重要)Requery 的情况是基于更改参数值选择一组新的记录。

提示

如果使用更改参数值进行调用 Requery,则查询速度可能比再次调用 Open 要快得多。

重新查询动态集与快照

由于动态记录集旨在呈现一组包含动态最新数据的记录,因此,如果要反映其他用户的添加内容,则需要经常重新查询动态集。 另一方面,快照非常有用,因为你可以在准备报表、计算总数等情况时安全地依赖其静态内容。 不过,有时你可能还需要重新查询快照。 在多用户环境中,当其他用户更改数据库时,快照数据可能会与数据源失去同步。

重新查询记录集对象

  1. 调用对象的 Requery 成员函数。

或者,可以关闭并重新打开原始记录集。 在任一情况下,新记录集都表示数据源的当前状态。

有关示例,请参阅记录视图:从第二个记录集填充列表框

提示

若要优化 Requery 性能,请避免更改记录集的筛选器排序。 调用 Requery 之前仅更改参数值。

如果 Requery 调用失败,可以重试调用;否则,应用程序应正常终止。 调用 RequeryOpen 可能由于多种原因而失败。 可能发生网络错误;或者,在调用期间,在释放现有数据之后,但在获取新数据之前,其他用户可能会获得独占访问权限;或记录集所依赖的表可以删除。

另请参阅

记录集 (ODBC)
记录集:动态绑定数据列 (ODBC)
记录集:创建和关闭记录集 (ODBC)