注意
从 Windows XP 开始,索引服务不再受支持,并且自Windows 8起无法使用。 请改用 Windows 搜索 进行客户端搜索,使用 Microsoft Search Server Express 进行服务器端搜索。
对于支持命令的提供程序, ICommandTree 接口是可选的。 它包含用于操作查询树的方法。 支持命令树的提供程序还必须支持通过 ICommandText 接口指定相同的功能。
一个命令对象只能有一个命令;该命令可以采用 在 ICommandTree) 中指定的命令树 (或 ICommandText) 中指定的文本命令 (的形式。 因此,如果命令是通过 SetCommandTree 或 ICommandText::SetCommandText 方法指定的,它将替换命令对象的命令,无论该命令是文本形式还是树形式。 如果通过 GetCommandTree 或 ICommandText::GetCommandText 检索命令,则无论命令的设置方式如何,该命令都以指定的形式进行检索。 因此, GetCommandText 方法必须能够将命令树转换为命令文本, 而 GetCommandTree 方法必须能够将命令文本转换为命令树。 请注意,在后一种转换中,提供程序应返回文本的可导航命令树表示形式,该表示形式不一定为优化形式。 如果提供程序无法创建完整表示形式,则命令树可以包含单个文本节点。
在命令对象创建的行集打开时,大多数提供程序不允许 ICommandTree 方法设置新的命令树。 (行集直接反映原始命令树) 的结果表。 但是,即使行集处于打开状态,某些提供程序也可能支持此操作。 如果是这样,则输出架构 (新命令树) 列集必须包含当前存在访问器的所有列,并且所有行集的访问器必须保持有效。 必须动态修改打开的行集,以反映新命令树的结果表。 返回 hRows (行句柄) 保持有效。 这意味着新的排序顺序或新的选择谓词对这些行无效,并且命令树修改后创建的所有访问器都将使用命令树修改之前获取的 hRows 。 如果使用打开的行集替换或修改命令树时发生错误,则命令对象、其命令树、行集、 hRows 和访问器保持不变。
继承
ICommandTree 接口继承自 IUnknown 接口。 ICommandTree 还具有以下类型的成员:
方法
ICommandTree 接口具有这些方法。
ICommandTree::FindErrorNodes ICommandTree::FindErrorNodes 方法遍历命令树并返回包含错误的节点数组。 |
ICommandTree::FreeCommandTree ICommandTree::FreeCommandTree 方法遍历命令树并解除分配所有 DBCOMMANDTREE 节点结构以及这些结构中的所有变体。 然后,它将根指针设置为 NULL 指针。 |
ICommandTree::GetCommandTree ICommandTree::GetCommandTree 方法将当前命令作为树回显,包括已添加的所有后期处理操作。 |
ICommandTree::SetCommandTree ICommandTree::SetCommandTree 方法设置命令对象的命令树,替换现有命令或替换使用 ICommandText 接口指定的文本命令。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | cmdtree.h |