Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
sintel
Member

Откуда:
Сообщений: 6
Подскажите, что означает параметр со значением 1 в данном случае CONVERT(varchar(40), binaryID , 1) ?
15 дек 10, 16:25    [9943359]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
sintel
Подскажите, что означает параметр со значением 1 в данном случае CONVERT(varchar(40), binaryID , 1) ?

А в хелпе по функции CONVERT не написано разве ?
15 дек 10, 16:27    [9943383]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
sintel
Member

Откуда:
Сообщений: 6
Glory,

это чужой код. Код предназначается для извлечения данных в распределенной системе данных. Почему так сделано ? Ваши соображения ?
15 дек 10, 16:32    [9943420]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
sintel
Glory,

это чужой код. Код предназначается для извлечения данных в распределенной системе данных. Почему так сделано ? Ваши соображения ?

Наверное так сделано потому, что хотели получить документированный результат от использования этого параметра
15 дек 10, 16:33    [9943434]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
проходящий.
Guest
sintel
Glory,

это чужой код. Код предназначается для извлечения данных в распределенной системе данных. Почему так сделано ? Ваши соображения ?
И это отменяет хелп?
15 дек 10, 16:42    [9943517]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
sintel
Member

Откуда:
Сообщений: 6
Glory,

Что означает значение 1 третьего параметра при преобразовании из binary в varchar ?
15 дек 10, 16:59    [9943687]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
sintel
Glory,

Что означает значение 1 третьего параметра при преобразовании из binary в varchar ?

О всех параметрах всех функций написано в хелпе
15 дек 10, 17:00    [9943694]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Для ленивых: Функции CAST и CONVERT (Transact-SQL)
15 дек 10, 17:03    [9943727]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Xordal
Member

Откуда: Таганрог
Сообщений: 536
Glory
sintel
Glory,

Что означает значение 1 третьего параметра при преобразовании из binary в varchar ?

О всех параметрах всех функций написано в хелпе

Зачем хелп если тут найдется кто-нибудь кто ответит. А вообще это извращение, когда ТС создает топик с вопросами, ответы на который можно прочитать в BOL (ну или в другом хэлпе, в зависимости от языка). Видимо в таких действиях есть какой-то глубокий смысл :))
15 дек 10, 17:09    [9943789]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Xordal
Member

Откуда: Таганрог
Сообщений: 536
iap
Для ленивых: Функции CAST и CONVERT (Transact-SQL)

а хелп как пользоваться хелпом где?
15 дек 10, 17:10    [9943796]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
sintel
Member

Откуда:
Сообщений: 6
iap,

это я уже читал, потому и спрашиваю.
15 дек 10, 17:25    [9943957]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
sintel
iap,

это я уже читал, потому и спрашиваю.

И после прочитанного вам так и непонятно, что делает 1 в этой функции CONVERT ?
Вы точно читали ссылку ?
15 дек 10, 17:27    [9943976]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Xordal
Member

Откуда: Таганрог
Сообщений: 536
sintel
iap,

это я уже читал, потому и спрашиваю.

Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

microsoft
Если параметр expression имеет значение binary(n), varbinary(n), char(n) или varchar(n), параметр style может принимать одно из значений, приведенных в следующей таблице. При использовании значений стиля, отсутствующих в этой таблице, возвращается ошибка.
....
Если для параметра data_type используется значение символьного типа фиксированного размера и длина преобразованного результата меньше длины типа данных data_type, к преобразованному выражению справа добавляются символы пробела, чтобы сохранить четность числа шестнадцатеричных знаков.

Символы 0x добавляются слева к преобразованному результату для параметра style, равного 1.

оО
15 дек 10, 17:34    [9944034]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
el Pueblo
Member

Откуда: Харьков
Сообщений: 202
Xordal
sintel
iap,

это я уже читал, потому и спрашиваю.

Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

microsoft
Если параметр expression имеет значение binary(n), varbinary(n), char(n) или varchar(n), параметр style может принимать одно из значений, приведенных в следующей таблице. При использовании значений стиля, отсутствующих в этой таблице, возвращается ошибка.
....
Если для параметра data_type используется значение символьного типа фиксированного размера и длина преобразованного результата меньше длины типа данных data_type, к преобразованному выражению справа добавляются символы пробела, чтобы сохранить четность числа шестнадцатеричных знаков.

Символы 0x добавляются слева к преобразованному результату для параметра style, равного 1.

оО

ТС наверное читал BOL 2005, а там кажется нет раздела "Стили двоичных данных"
15 дек 10, 17:39    [9944081]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Geep
Member

Откуда: Москва
Сообщений: 975
el Pueblo,
+ 1
15 дек 10, 17:47    [9944182]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
el Pueblo,

линк приводили на доку по 2008 R2 где ето все расжеванно
15 дек 10, 17:47    [9944185]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
el Pueblo
Member

Откуда: Харьков
Сообщений: 202
Maxx
el Pueblo,

линк приводили на доку по 2008 R2 где ето все расжеванно

ну да, ну да (с)
а ТС увидел знакомое название линка и подумал, что нафек ему уже читанное читать
15 дек 10, 17:50    [9944224]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Xordal
Member

Откуда: Таганрог
Сообщений: 536
el Pueblo
ТС наверное читал BOL 2005, а там кажется нет раздела "Стили двоичных данных"

Думаю если он смог выбрать BOL 2005, то мог бы и найти нужную инфу в 2008. Скорее всего он просто открыл BOL по 2008 R2, увидел много текста и решил не утруждать себя чтением и получить ответ на интересующий его вопрос тут.

Хотя это только догадки...
15 дек 10, 17:52    [9944245]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Anddros
Member

Откуда:
Сообщений: 1077
el Pueblo
ТС наверное читал BOL 2005, а там кажется нет раздела "Стили двоичных данных"

Там нет этого раздела потому как стили в 2005-м еще не работали. :)

Пример из БОЛа 2008R2 на разных серверах:
SELECT 
	CONVERT(char(8), 0x4E616d65), 
	CONVERT(char(8), 0x4E616d65, 0),
	CONVERT(char(8), 0x4E616d65, 1),
	CONVERT(char(8), 0x4E616d65, 2)
select @@version

-------- -------- -------- --------
Name     Name     0x4E616D 4E616D65

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) 
	Apr  2 2010 15:53:02 
	Copyright (c) Microsoft Corporation
	Express Edition with Advanced Services on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
и
-------- -------- -------- --------
Name     Name     Name     Name    

Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86) 
	May 26 2009 14:24:20 
	Copyright (c) 1988-2005 Microsoft Corporation
	Express Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
Могу понять недоумение ТС, если у него для проверки только 2005-й. :)
16 дек 10, 10:05    [9946662]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Anddros
Могу понять недоумение ТС, если у него для проверки только 2005-й. :)
Но с другой стороны
sintel
это чужой код. Код предназначается для извлечения данных в распределенной системе данных. Почему так сделано ? Ваши соображения ?
и в этом чужом коде используется стиль для VARBINARY.
Значит, ТС известно, что он писался именно для SQL2008. Логично?
16 дек 10, 10:42    [9946961]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
Anddros
Member

Откуда:
Сообщений: 1077
iap
Anddros
Могу понять недоумение ТС, если у него для проверки только 2005-й. :)
Но с другой стороны
sintel
это чужой код. Код предназначается для извлечения данных в распределенной системе данных. Почему так сделано ? Ваши соображения ?
и в этом чужом коде используется стиль для VARBINARY.
Значит, ТС известно, что он писался именно для SQL2008. Логично?
Если ТС не работал с 2008-м, то он этого может и не знать об этих стилях. Допустим, чел видит третий параметр в convert'e для varbinary -> чешет репу -> лезет в БОЛ (2005-го!) - внятного ничего по этому поводу там не видит -> проверяет код у себя (на 2005!) - разницы не наблюдает -> задает вопрос на форуме. Проверить, какая версия сервера стоит там, на другом конце распределенки, может прийти в голову далеко не сразу. Ведь
sintel
это чужой код. Код предназначается для извлечения данных в распределенной системе данных.

Логично? :)

Впрочем, все это просто догадки. Подтвердить или опровергнуть может только ТС.
16 дек 10, 11:34    [9947471]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31977
iap
Значит, ТС известно, что он писался именно для SQL2008. Логично?
Мы не знаем, подозревает ли ТС о существовании нескольких версий MSSQL, о существовании BOL и прочее...
16 дек 10, 12:25    [9947958]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
gBogus
Guest
А кто-нить может подсказать как на 2005м получить результат с выбранным стилем?

select CONVERT(char(8), 0x4E616d65, 2)


Хочется получить именно 4E616d65, а не Name
5 апр 12, 10:42    [12368946]     Ответить | Цитировать Сообщить модератору
 Re: CONVERT(varchar(40), binaryID , 1) в этом есть глубокий смысл ?  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> А кто-нить может подсказать как на 2005м получить результат с выбранным стилем?
> Хочется получить именно 4E616d65, а не Name

select dbo.fn_varbintohexstr(0x4E616d65)

только, эта функция недокументированная.

Posted via ActualForum NNTP Server 1.5

5 апр 12, 10:50    [12369003]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить