Обновление DataConnection служб SQL Reporting Services
-
03-07-2019 - |
Вопрос
Можно ли изменить строку подключения опубликованного отчета служб отчетов sql?Я вижу двоичное поле DataSource в базе данных ReportServer, но, поскольку оно хранится в двоичном виде, я не думаю, что его можно легко обновить.
Нужно ли мне повторно опубликовать отчет с правильным источником данных?Я надеюсь, что нет, поскольку не хочу устанавливать VS2003.
РЕДАКТИРОВАТЬ:На клиенте работают службы отчетов SQL Server 2000 со всеми установленными пакетами обновлений.
Решение
Службы SQL Reporting Services 2000 имеют [веб-службу](http://msdn.microsoft.com/en-us/library/aa274396(SQL.80).aspx) который вы можете использовать для изменения источника данных.Учитывая это, следующее позволяет изменить источник данных на общий источник данных.Это было [адаптировано из MSDN](http://msdn.microsoft.com/en-us/library/aa225896(SQL.80).aspx).
// Create our reporting services class
ReportingService theRS = new ReportingService();
theRS.Credentials = System.Net.CredentialCache.DefaultCredentials;
// We need to setup a data source reference to an existing shared data source
DataSourceReference theDSRef = new DataSourceReference();
theDSRef.Reference = "/Path/To/ExistingSharedDataSource";
DataSource[] theDSArray = new DataSource[1];
DataSource theDS = new DataSource();
theDS.Item = (DataSourceReference)theDSRef;
theDS.Name = "NameOfSharedDataSource";
theDSArray[0] = theDS;
try
{
// Attempt to change the data source of the report
theRS.SetReportDataSources("/Path/To/ReportName", theDSArray);
Console.Out.WriteLine("We have changed the data source");
}
catch (System.Web.Services.Protocols.SoapException e)
{
Console.Out.WriteLine(e.Message);
Console.Out.WriteLine(e.Detail.InnerXml.ToString());
}
В этом примере Служба отчетности Класс взят из класса Proxy, который я сгенерировал для взаимодействия с веб-сервисом, который описан [здесь](http://msdn.microsoft.com/en-us/library/aa256607(SQL.80).aspx).
Я надеюсь, что это кому-то поможет.Дайте мне знать, если вы ищете что-то другое.