您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

其他 2022/1/1 18:45:19 有439人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶