Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 две одинаковые реализации - разные результаты. Причина?  [new]
petukhov
Member

Откуда:
Сообщений: 2
Здравствуйте!
Реализовал преобразование с явным и неявным указанием параметров. Результат разный, а должен быть одинаковым. В чем причина?
DECLARE @CardRecord VARBINARY(10),
		@CardRecord2 VARBINARY(10),
		@seria INT,
		@Num BIGINT
SET @seria = 213
SET @Num = 4294838079
SET @CardRecord =  CAST(@seria  AS VARBINARY(1)) + CONVERT(VARBINARY(4),REVERSE(CONVERT(VARBINARY(4),SUBSTRING(CONVERT(VARBINARY(10), @Num),5,4))))
SET @CardRecord2 = CAST(213     AS VARBINARY(1)) + CONVERT(VARBINARY(4),REVERSE(CONVERT(VARBINARY(4),SUBSTRING(CONVERT(VARBINARY(10), 4294838079),5,4))))
SELECT @CardRecord
SELECT @CardRecord2

Правильный результат 0xD5FFFE073F. Он получается если явно указать данные. Если передать параметрами, то результат 0xD53F07FEFF, т.е. не выполняется REVERSE.
Укажите пожалуйста мне на ошибку.
Спасибо
29 май 15, 14:55    [17706884]     Ответить | Цитировать Сообщить модератору
 Re: две одинаковые реализации - разные результаты. Причина?  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
petukhov,
select SQL_VARIANT_PROPERTY(4294838079, 'BaseType'), SQL_VARIANT_PROPERTY(@Num, 'BaseType')
29 май 15, 15:05    [17706976]     Ответить | Цитировать Сообщить модератору
 Re: две одинаковые реализации - разные результаты. Причина?  [new]
petukhov
Member

Откуда:
Сообщений: 2
buser,
Спасибо за помощь. Обьявил @Num как numeric и результат верный.
Еще раз спасибо
29 май 15, 15:32    [17707243]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить