我有SQL Server 2008,SSRS安裝在一臺服務器上,SQL Server 2008 R2安裝在新服務器上安裝了SSRS。我想使用SSRS Web服務API將200多份報告以及一些共享計劃和一些數據源從第一臺服務器遷移到第二臺服務器。爲了簡單起見,由於只有幾個共享數據源,我繼續使用Report Manager界面創建這些數據源。SSRS ReportingService2010將嵌入式數據源更改爲共享數據源
不幸的是,那些來我之前的人在每個報告中嵌入了數據源信息(連接字符串,登錄名,密碼等)。我認爲這將是一個很好的時機來改變這些指向共享數據源,因此不必爲每個報告逐一完成。我可以使用CreateCatalogItem很好地在新服務器上創建報告,但似乎無法確定如何正確地從嵌入式數據源更改爲共享數據源。
到目前爲止,我曾經嘗試都SetItemReferences:
itemRef.Reference = "/Data Sources/TMS";
itemRef.Name = "TMS";
itemRef.Reference = "/Data Sources/TMS";
rs2010.SetItemReferences(catItem.Path, new ReportService2010.ItemReference[] { itemRef });
和SetItemDataSources:
ReportService2010.DataSourceReference dataSourceRef = new ReportService2010.DataSourceReference();
dataSourceRef.Reference = "/Data Sources/TMS";
ReportService2010.DataSource dataSource = new ReportService2010.DataSource();
dataSource.Name = "TMS";
dataSource.Item = dataSourceRef;
rs2010.SetItemDataSources(catItem.Path, new ReportService2010.DataSource[] { dataSource });
兩種方法都在試圖與嵌入數據源的報表時,「NotFoundException」但他們都在已經指向共享數據源的報表上工作得很好。
此外,我已經搜索了谷歌以及StackOverflow的解決方案,但沒有發現任何東西。任何人都可以在這裏指出我正確的方向嗎?
謝謝 - 你的代碼幫助我實現了非常相似的東西。 – KenD
不錯!謝謝。如果Microsoft文檔告訴我們如何做到這一點,那將會很好 –