我可以設置使用目錄服務OLE提供程序並指向我們的一個域控制器的連接管理器。然後,在數據流區域中,我創建一個OLE DB源並將數據訪問模式設置爲「SQL命令」。如何在SQL Server Integration Services項目中使用OLE DB提供程序用於目錄服務?
然後我用這個查詢從Active Directory中提取數據:
Select employeeid, sAMaccountName
From 'LDAP://MyCompany.com'
Where objectClass = 'user'
and objectClass = 'Person'
and objectClass <> 'Computer'
如果我解析查詢,它說,它正確地解析。如果我打開查詢生成器,它會給我這個錯誤。
Error in FROM clause: near 'WHERE'. Unable to parse query text.
然後單擊確定,然後打開查詢生成器,我可以成功運行查詢並從AD獲得結果。然而,當我嘗試單擊OK應用更改,或進入視圖的列,我得到這個錯誤:
Error at Data Flow Task [OLE DB Source 1 [941]]: An OLE DB error has occurred. Error code: 0x80040E21.
ADDITIONAL INFORMATION: Exception from HRESULT: 0xC0202009 (Microsoft.SqlServer.DTSPipelineWrap)
我自己也嘗試設立使用「SQL命令從變量」接入模式的DB源。我設置了一個字符串變量,其值爲查詢...但這只是給了我相同的錯誤。
由於錯誤是如此普遍,我似乎無法找到什麼是實際錯誤的描述。
有誰知道如何成功使用Microsoft Direcotry Services的OLE DB提供程序?和/或是否有人知道在SSIS內部執行此操作的更好方法?