Stored Proc (возвращающие набор данных) и Fastreport
Доброго всем дня!
Есть процедура на MS SQL, возвращает Select...
Вставляю её в SqlDataSource, в гриде возвращаемый ею курсор видно нормально. Если же добавляю этот SqlDataSource в DataSources WebReport'a при создании отчёта выдаётся ошибка:
"
Сведения об исключении: System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
Ошибка источника:
Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений.
"
Подскажите кто сталкивался, не могу я чтоли использовать такой SqlDataSource в FastReport? Или как это побороть?
Есть процедура на MS SQL, возвращает Select...
Вставляю её в SqlDataSource, в гриде возвращаемый ею курсор видно нормально. Если же добавляю этот SqlDataSource в DataSources WebReport'a при создании отчёта выдаётся ошибка:
"
Сведения об исключении: System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
Ошибка источника:
Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений.
"
Подскажите кто сталкивался, не могу я чтоли использовать такой SqlDataSource в FastReport? Или как это побороть?
Комментарии
Проверил на последней версии. С тестовой процедурой все работает. Как воспроизвести ошибку?
У меня FastRep 1.2.47. VS2008. MS SQL Server 2008.
Создаю ASPX-проект. На ASP-форму кидаю SqlDataSource, прописываю ConnectionString, ProviderName="System.Data.SqlClient", SelectCommandType="StoredProcedure", SelectCommand="GetSomthing". Процедура возвращает набор данных. Добавляю на форму WebReport, загружаю в него файл FRX, правой кнопкой на отчёте -> "Select Data Source" -> ставлю галочку на своём Datasource. В самом отчёте даже могу не использовать данные из этого ДатаСорса. Далее запускаю проект и при загрузке вышеуказанная ошибка.
Если же вешать не процедуру а Таблицу, работает нормально, данные вытягиваются в полном объёме.
Ещё момент, пытался набор данных добавить в самом отчёте, добавил Connection, добавил команду "exec GetSomthing", отобразились поля таблицы, которая возвращается из процедуры. Когда я использую их в отчёте, почему-то используется только первая строка из набора, остальных не видит, но и ошибку не вываливает.
Что касается печати только одной строки: скорее всего, бэнд "Данные" не подключен к источнику данных.
На последней версии к сожалению то же самое....
Трассировка стека:
[NullReferenceException: В экземпляре объекта не задана ссылка на объект.]
FastReport.Data.Dictionary.kTwjGt3xr(IEnumerable , String , Int32 , Boolean ) +61
FastReport.Report.QdI6CMhwL(IEnumerable , String ) +179
FastReport.Report.v3IDO4251(IEnumerable ) +48
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31
FastReport.Report.RegisterDataAsp(IDataSource data, String name) +138
FastReport.Web.WebReport.SfGmmVjnE(Report ) +283
FastReport.Web.WebReport.MRxc0rGHM() +497
FastReport.Web.WebReport.OnLoad(EventArgs e) +109
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Control.LoadRecursive() +141
System.Web.UI.Control.LoadRecursive() +141
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
Не могли бы Вы прислать мне проект, демонстрирующий ошибку? tz@fast-report.com
Проблема оказывается в следующем, в процедуре есть параметр, который по идее может быть нулловым, но если с SqlDataSource значение параметра по умолчанию мы не указываем, то как раз и возникает эта ошибка. Если же я передам туда что угодно (параметр varchar(60)), ошибки не возникает. Получается если ничего не указано в качестве значения по умолчания, null туда не подставляется!? Надеюсь понятно объяснил ситуацию...