栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

错误:无法从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中是必需的,否则程序将失败并显示错误)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号