属性范围检索

多值属性几乎可包含任意数量的值。 很多情况下,限制查询可检索的值范围可能很有利,甚至很有必要。

范围检索涉及在单个查询中请求有限数量的属性值。 请求的值数量必须小于或等于服务器支持的最大值数量。 若要减少查询必须访问服务器的次数,请求的值数量则应尽可能接近此最大值。 若要使某一应用程序能正确用于所有 Windows 服务器,则应使用最多 1,000 个请求。

属性查询的范围说明符需采用以下形式:

range=<low range>-<high range>

其中,“<低范围>”为要检索的第一个属性值的从零开始的索引,而“<高范围>”为要检索的最后一个属性值的从零开始的索引。 零会用于“<低范围>”,以便指定第一个条目。 通配符字符 (*) 可用于“<高范围>”,以便指定所有剩余条目。

下表列出了范围说明符的示例。

示例 说明
range=0-* 检索所有属性值。 它受限于服务器施加的限制。
range=0-500 从第 1 个值检索到第 501 个值(含)。
range=2-3 检索第 3 个值和第 4 个值。
range=501-* 检索第 502 个值以及所有剩余的值。 它受限于服务器施加的限制。

 

有多种方法可检索一系列属性值。 IADs.GetInfoEx 方法可用于自动化语言或 C++。 IADs.GetInfoEx 方法是执行范围检索的首选方法。 有关使用 IADs.GetInfoEx 进行范围检索的详细信息,请参阅使用 IADs::GetInfoEx 进行范围检索

如果使用的是自动化语言,ActiveX Directory 对象 (ADO) 则可用于检索一系列属性值。 有关使用 ADO 进行范围检索的详细信息,请参阅使用 ADO 进行范围检索

如果使用的是 C++,则可使用 IDirectorySearchIDirectoryObject 接口来检索一系列属性值。 有关使用 IDirectorySearch and IDirectoryObject 进行范围检索的详细信息,请参阅使用 IDirectorySearch 和 IDirectoryObject 进行范围检索。 应对范围为 Base (ADS_SCOPE_BASE) 的查询执行此类检索。