2

公開された SQL Reporting Services レポートの接続文字列を変更することはできますか? ReportServer データベースに DataSource というバイナリ フィールドが表示されますが、バイナリとして格納されているため、簡単に更新できるとは思えません。

正しいデータ ソースを使用してレポートを再発行する必要がありますか? VS2003をインストールする必要がないので、そうしないことを望んでいます。

編集: クライアントは、すべてのサービス パックがインストールされた SQL Server 2000 Reporting Services を実行しています。

4

1 に答える 1

1

SQL Reporting Services 2000 には、データ ソースの変更に使用できる[Web サービス]( 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());
}

この例では、ReportingServiceクラスは、Web サービスと対話するために生成した Proxy クラスから取得されます。 80).aspx) .

これがいくらか役立つことを願っています。何か違うものを探している場合はお知らせください。

于 2008-10-17T15:42:44.007 に答える