Какой самый дешевый способ проверить, существует ли отчет на моем сервере отчетов? - PullRequest
1 голос
/ 02 декабря 2009

С учетом установки SQL Server 2008 Reporting Services, какой самый «дешевый» способ проверить, существует (или нет) данный отчет (заданный его именем + путь отчета, например, /MyReports/SomeOddballReport)?

Я вижу много потенциальных кандидатов в веб-сервисе ReportServer - какой из них является самым быстрым и тот, который использует наименьшее количество системных ресурсов ??

  • FindItems()
  • GetReportDefinition()
  • GetReportLink()
  • GetProperties()

Кто-нибудь еще мне не хватает? Спасибо за любые подсказки и указатели! Я считаю, что интерфейсу веб-службы Reporting Services не хватает документации и примеров, на самом деле ......

Ответы [ 2 ]

2 голосов
/ 02 декабря 2009

Кажется, самый быстрый способ - использовать метод FindItems .

Кажется, что все остальные параметры связаны с метаданными, поскольку они извлекают свойства для этих элементов (поэтому сначала нужно найти элемент и, таким образом, получить эти метаданные)

1 голос
/ 02 декабря 2009

Благодаря MS Reporting Services, работающему на MS SQL, вы можете легко возвращать имена отчетов и видеть, существует ли отчет. Внутри SQL Server есть база данных под названием ReportServer. В этой базе данных есть таблица, которая называется Каталог. В таблице каталога хранятся источники данных, отчеты и некоторая другая важная информация. Ключевыми полями являются «Имя» и «Тип». Тип различает отчет / источник данных / и т. Д. Имя, конечно, очевидно, это имя отчета.

Чтобы получить все отчеты об экземпляре службы отчетов, попробуйте следующее:

USE ReportServer
GO
SELECT Name, Description FROM Catalog WHERE Type=2

Чтобы получить все источники данных:

USE ReportServer
Go
SELECT Name, Description FROM Catalog WHERE Type=5

Так что, если у вас есть имя или хотя бы знаете, с чего начинается отчет, вы можете выполнить запрос LIKE:

SELECT Name FROM Catalog WHERE Name LIKE '%Employee Report%'

Проверьте мой блог для получения дополнительной информации:

http://weblogs.sqlteam.com/jhermiz/archive/2007/08/14/60285.aspx

Также, поскольку вы упомянули, это поле пути, которое может содержать такие данные:

/ ETime / Сводка рабочих часов по департаментам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...