Как я получаю данные нетаблицы в SQL Server Reporting Services?

Это не фреймворк, но вы можете попробовать soapui . Если это не вариант, я бы сказал, что вам нужно несколько фреймворков. Например, RestAssured для тестирования API REST.

12
задан John Saunders 14 May 2009 в 23:38
поделиться

7 ответов

Если я правильно вас понял, вы строите отчет для данных, отличных от SQL. Вы сохраняете данные в таблицах с конкретной целью сделать их отчетными.

Я могу придумать два решения. Во-первых, расширение вашего вычислительного механизма C # с помощью отчетной части . Пространства имен Microsoft.Reporting.WinForms и Microsoft.Reporting.WebForms можно использовать для построения отчетов по любому источнику данных, а не только SQL Server. Если конечные пользователи используют ваше приложение в качестве клиента, вы можете генерировать данные и отчеты на лету.

Второй - использовать SQL CLR. Вы можете использовать хранимую процедуру CLR в качестве основы для отчета (введите "exec mysp" в качестве источника данных). Эта процедура CLR представляет собой код C # и может включать ваш механизм вычислений в качестве библиотеки. Это позволит вам создавать отчеты на лету,

9
ответ дан 2 December 2019 в 18:22
поделиться

Задумывались ли вы о написании собственного настраиваемого драйвера базы данных, который будет располагаться поверх вашей вычислительной машины? Затем вы можете указать службы отчетов прямо на нем. Это поможет ускорить процесс, хотя это может оказаться сложной задачей. Я рассматривал это в прошлом для проприетарного ПО хранилища данных, над которым я работал, но так и не получил разрешения на создание драйвера.

Между прочим, отличный вопрос.

2
ответ дан 2 December 2019 в 18:22
поделиться

Вы можете обернуть свои данные в ADO.NET DataSet и использовать его в качестве источника данных служб Reporting Services. .

Я никогда не использовал это лично, поэтому Я не могу дать вам больше информации. Однако я знал, что вы можете сделать это на уроке SSRS, который я посещал. Пример, который дал мне инструктор, когда вы сделаете это в «реальном мире», будет, если вам нужно объединить данные из двух разных источников данных. Например, вы бы сделали это, если бы хотели сопоставить данные из SQL Server и Oracle вместе в одном отчете.

Я знаю, что это не то, что вы хотите сделать, но похоже, что это обеспечит тот же уровень абстракции. что вам нужно.

3
ответ дан 2 December 2019 в 18:22
поделиться

I've been in a similar situation previously and tried both the SSRS XML data source and the reporting extension that Andomar mentions. My recommendation is to use the SSRS XML data source feature. If the data structure returned by the web service is simple then the XPath is also simple. I also found it easier to debug. Main thing to watch out for is the timeouts.

The good thing with using web services is that they are easily consumed by many different technologies so they can become very handy to have anyway.

Also, it's a personal choice but despite the SQL CLR features I still don't feel comfortable with putting code in the database. By using an XML data source in SSRS there is no need to involve custom CLR code at all.

3
ответ дан 2 December 2019 в 18:22
поделиться

Я бы определенно пошел по дороге ADO.NET DPE . Если ваш источник данных может предоставить необходимые данные в реальном времени, это будет иметь наибольший смысл. Вы сэкономите себе 1,2 или 3 уровня, что, безусловно, улучшит общую производительность. И не говорить об обслуживании каждого уровня кода. Лучше всего, на мой взгляд, предоставить доступ к количественным обработанным данным в виде набора данных ADO.NET и позволить вашим службам отчетов запрашивать их напрямую.

1
ответ дан 2 December 2019 в 18:22
поделиться

Использование среды CLR SQL для связи с Интернетом служба в веб-приложении

Я рекомендую именно этот способ - я сделал это для доступа к данным списка SharePoint через их веб-службы. Если схему данных можно исправить, SQL CLR TVF может подойти и обеспечить максимальную гибкость. Если вам нужно, чтобы схема определялась во время выполнения, вам нужна хранимая процедура SQL CLR, поскольку она не привязана к схеме.

Ключевые вещи, которые вам понадобятся, это:

-- enable CLR on the server
sp_configure 'clr_enabled', 1
GO
RECONFIGURE
GO

-- allow your db to execute clr code marked EXTERNAL or UNSAFE
alter database mydb set trustworthy on

затем создать VS sql clr project (вам не обязательно, но он помогает с его развертыванием и отладкой), установите уровень разрешений на «внешний». Если вы используете «Добавить веб-ссылку» в проекте VS, вам нужно будет включить создание сборки сериализации и CREATE ASSEMBLY, чтобы загрузить ее после сборки / развертывания.

Сейчас это немного сложно. - честно, я сделал это - я ' Позже добавлю больше деталей. В прошлом месяце я выступал с докладом о SQL CLR. В моем примере кода есть проект GetFibs, который вызывает веб-сервис (Fibonnaci), который также включен.

Также посмотрите здесь: http://footheory.com/blogs/bennie/archive /2006/12/07/invoking-a-web-service-from-a-sqlclr-stored-procedure.aspx и http://www.codeproject.com/KB/database/SQLCLR.aspx ? display = Print

Работает нормально, может ли большие наборы данных?

Да, похоже, работает хорошо. Приложив немного дополнительных усилий, вы можете создать его более ориентированным на потоки, при котором он не будет потреблять память для всего набора. Посмотрите, как в примере Range или здесь .

1
ответ дан 2 December 2019 в 18:22
поделиться

В SQL 2008 вы можете использовать пакет SQL SSIS в качестве источника данных. Напишите пакет SSIS для выполнения вашего механизма вычислений на лету и вывода набора данных .net в памяти (DataReaderDestination). Затем это можно использовать для отчетов.

1
ответ дан 2 December 2019 в 18:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: