错误:无法从OLE DB提供程序``DsDSOObject''中获取链接服务器``DSI''的行。

错误:无法从OLE DB提供程序``DsDSOObject''中获取链接服务器``DSI''的行。,第1张

错误:无法从OLE DB提供程序``DsDSOObject''中获取链接服务器``DSI''的行。 问题

当我尝试向用户查询AD时,出现以下错误

无法从OLE DB提供程序“ ADsDSOObject”获取链接服务器“ ADSI”的行。

我认为是由于1000行限制(或SqlServer 2008中的901行)导致的问题。我可以分页查询,但我正在寻找一种解决方法,一次可以检索1000多个。

如果有帮助,我正在使用SqlServer 2008 R2。这是我的查询>

SELECt  samaccountname AS Account, ISNULL(givenName, '''') AS givenName, ISNULL(SN, '''') AS SN, ISNULL(DisplayName, '''') as DisplayName, ISNULL(Title, '''') AS Title          FROM OpenQuery(ADSI,          'SELECt SamAccountName, givenName, SN, DisplayName, Title         FROM ''LDAP://corpdomain.corp''          WHERe objectClass = ''User'' and (SN = ''*'' or givenName = ''*''

有任何想法吗?

编辑-经过进一步检查,我意识到我也无法正确分页此查询。>是否有人对解决方案有任何建议,可以使我分页结果,或者可以使我返回大于901的变通办法?

我的解决方法

我只是通过最佳地应用页面调度解决了我面临的相同问题(并且我能够成功地从AD检索大约5万个登录名,并且从AD域中获取单个登录帐户也不失踪):

您需要通过遍历属性的字符来解决ADSI查询限制。在此处查看解决方案:http
:
//www.sqlservercentral.com/Forums/Topic231658-54-1.aspx#bm1249991

通过编写

SELECT TOP 901 ...
IN PLACE OF JUST解决了该错误
SELECT

是的,此问题与使用SqlServer 2008 R2有关。从2005年到2008年数据库迁移后,我遇到了这个问题,因为在SQL Server
2008中,限制为901行,而在SQL Server 2005中限制为1000行(不同之处是我们需要编写select TOP 901,而不是在SQL
Server 2005中是必需的,否则程序将失败并显示错误)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5673877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存