Что означает ошибка «Набор данных относится к общему набору данных, который недоступен».имею в виду? - PullRequest
1 голос
/ 05 июня 2019

У меня есть шаблон отчета (файл .rdl) со встроенным набором данных 'X', который ссылается на общий набор данных 'Y' (файл .rsd). Оба файла находятся в одной папке.

Когда я пытаюсь сгенерировать отчет, я получаю сообщение об ошибке «Набор данных« X »относится к общему набору данных« Y », который недоступен».

Наборы данных не содержат строк, разделенных запятыми или пустых значений .

ОБНОВЛЕНИЕ (2019-06-07): в отличие от вышеизложенного, данные содержали пустые значения. Я не знал, что фильтр очищает конечный результат.

Я также позаботился о том, чтобы источник данных был общим.

Другие общие наборы данных распознаются, но это не так.

Я посмотрел на разрешения базы данных, но мне удалось без проблем выполнить запросы SQL из наборов данных в SSMS, что, по-видимому, указывает на то, что разрешения действительны. Возможно, приложению, использующему наборы данных, требуются определенные разрешения базы данных ..?

Это проблемный набор данных:

    <?xml version="1.0" encoding="utf-8"?>
    <SharedDataSet xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/shareddatasetdefinition">
      <DataSet Name="">
        <Query>
          <DataSourceReference>XXX</DataSourceReference>
          <DataSetParameters>
            <DataSetParameter Name="@Foo">
              <ReadOnly>false</ReadOnly>
              <Nullable>false</Nullable>
              <OmitFromQuery>false</OmitFromQuery>
              <rd:DbType>Object</rd:DbType>
            </DataSetParameter>
          </DataSetParameters>
          <CommandText>***a SQL query***</Query>
        <Fields>***some fields***
        </Fields>
        <Filters>***some filters***
        </Filters>
      </DataSet>
    </SharedDataSet>

Этот, похоже, не создает проблем:

    <?xml version="1.0" encoding="utf-8"?>
    <SharedDataSet xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/shareddatasetdefinition">
      <DataSet Name="">
        <Query>
          <DataSourceReference>XXX</DataSourceReference>
          <DataSetParameters>
            <DataSetParameter Name="@FooId">
              <ReadOnly>false</ReadOnly>
              <Nullable>false</Nullable>
              <OmitFromQuery>false</OmitFromQuery>
              <rd:DbType>Object</rd:DbType>
            </DataSetParameter>
            <DataSetParameter Name="@BarId">
              <ReadOnly>false</ReadOnly>
              <Nullable>false</Nullable>
              <OmitFromQuery>false</OmitFromQuery>
              <rd:DbType>Object</rd:DbType>
            </DataSetParameter>
          </DataSetParameters>
          <CommandText>***SQL QUERY***</CommandText>
        </Query>
        <Fields>***some fields***
        </Fields>
        <Filters>
          <Filter>***some filters***
          </Filter>
        </Filters>
      </DataSet>
    </SharedDataSet>

ОБНОВЛЕНИЕ (2019-06-06): очевидно, удаление фильтров и обеспечение того, чтобы запрос не дал пустого результата, исправляет ошибку. Если есть фильтр (ы) или если запрос дает пустой результат, возвращается ошибка. Понятия не имею, почему это так.

ОБНОВЛЕНИЕ (2019-06-07): фильтр заставил набор данных вернуть пустой набор записей (0 строк). Это то, что кажется причиной ошибки. Во всех тестах, которые я делал, в случаях, когда работала хотя бы одна строка данных, и в случаях, где было 0 строк, была ошибка.

...