Параметр SSRS 2008, получающий nvarchar вместо varchar - PullRequest
0 голосов
/ 02 марта 2011

Я создал три таблицы в SQL Server 2008, все с

Code char(1) not null,
Description varchar(50)

затем три звездочки, все по

create name_menu as
begin
set nocount on;
select Code,
       Code + ' - ' Description as Description
  from name;
end;

(имя является частью меняется)

Добавлен каждый спрок в отчет SSRS 2008 в виде набора данных. затем добавили каждый набор данных в качестве параметра с кодом в качестве значения, описанием в качестве метки

В отчете два меню выглядят так, как ожидалось, но в одном из них показан только код, «-» и первая буква описания. Если я добавлю значение параметра в отчет в виде текстового поля, в части описания будут присутствовать «поля», типичные для попытки отобразить младший порядковый номер UTF-16 в поле ASCII.

Я искал XML отчета и обнаружил, что все нечисловые типы данных имеют тип String или System.String

Я проверил

SELECT inf...schema.columns where DATATYPE = 'NVARCHAR'

... а их нет.

Я удалил sproc и снова запустил оператор create, а затем велел SSRS обновить поля.

Старые версии SSRS использовались для кэширования данных и иногда не обновлялись, поэтому я искал файлы для кэширования, которые нужно удалить. Не нашел ни одного.

Я должен быть в состоянии наложить результаты, но я не должен иметь для. (И не удивительно, что вам скажут: «Вы не можете этого сделать»)

Рекомендации

Ответы [ 2 ]

1 голос
/ 10 марта 2011

(смущенно) Не знаю, как это произошло, но каким-то образом исходный текст в таблице был преобразован в UTF-16 и вставлен обратно в таблицу, как будто это был ASCII. Так что любой другой персонаж был нулевым. SSRS пытался отобразить то, что на самом деле было, как тип данных, который, как он утверждал, был.

Поскольку я видел правильный текст в таблице незадолго до того, как увидел поддельный текст в SSRS, я не стал смотреть туда снова. Коллега действительно нашел это.

Это действительно показывает две ошибки: SSRS сделал правильную вещь в текстовом поле, показывая каждый ноль как «ящик». Но в меню он рассматривал первый ноль как конец строки. И SSMS сделала то же самое в таблице результатов оператора select.

0 голосов
/ 02 марта 2011

В диалоговых окнах DataSet вы можете видеть типы данных как параметров, так и результатов.Ошибка будет .

Проверьте это на опечатки или ошибки.Или в хранимых процедурах, которые диалоговые окна «обнюхивают», чтобы получить типы данных (но вряд ли основанные на предоставленной информации).

То, что SSRS использует внутри, не имеет значения ...

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