【问题标题】:Recordset only returning 1000 recordsRecordset 只返回 1000 条记录
【发布时间】:2010-11-06 14:10:45
【问题描述】:

我正在使用 LDAP 查询执行 ADODB recordset.open() 命令,以从我的 Active Directory 中获取所有用户。

大约有 2600 个用户,但我只收回了其中的 1000 个。

我尝试更改记录集的 PageSize 和 MaxRecords 属性,但没有成功。

没有多余的东西,这就是代码的样子(我已将连接细节设为通用):

ADODB.Connection conn = new ADODB.Connection();
ADODB.Recordset rs = new ADODB.Recordset();
rs.MaxRecords = 10000;
rs.PageSize = 10000;
conn.Open("Active Directory Provider","","",0);
string query = "SELECT cn FROM 'LDAP://OU=User Accounts,OU=TopLevel,DC=domainName,DC=local' where samAccountName = '*'"

rs.Open(query, conn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic, -1);

它肯定只返回 1000 条记录,(我已经确认),我可以正常访问它们。

如果它有帮助,我不使用 DirectorySearcher 的原因是因为它与此相比太慢了

【问题讨论】:

    标签: c# active-directory adodb recordset


    【解决方案1】:

    【讨论】:

    • 其中一个似乎是指 OLEDB,我可能不得不切换到...另一个似乎是注册表的东西,遗憾的是不是一个选项。
    【解决方案2】:

    讨论了 1000 个限制 here - 本质上,它在服务器上是固定的,所以您需要与所有者交谈...

    【讨论】:

    • 我很确定您可以从查询中设置它 - 我之前使用带有 command.Execute 的 VBScript 完成了它。只是我无法让它工作。
    • 我们遇到了这个确切的问题,我们最终需要根据姓氏对用户进行分页,以便单个集合少于 1000。这不是一个理想的解决方案,但它解决了这个限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2016-05-22
    • 2018-09-13
    • 1970-01-01
    相关资源
    最近更新 更多