|
|
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Субж. Наоборот знаю, а вот именно так что-то не соображу. Есть строка '0x1234'. Получить из нее binary-значение 0x1234. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:19:08 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Подойдет ? Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:27:30 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Таким способом понятно, что можно :-) А не через динамический запрос никак-никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:41:44 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Вот заготовка, ее нужно доработать... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 15:10:23 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Это необходимо добавить перед set @result = @result + @val: if @val < 0 return 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 15:13:47 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Понятно. Ладно, спасибо большое всем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 15:39:22 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
set nocount on declare @varchar varchar(100), @hexstring char(16), @result varbinary(100), @i int, @pow int set @hexstring = '0123456789ABCDEF' set @result = 0 set @pow = 0 set @varchar = '0x12340f0a' set @i = len(@varchar) while @i >= 3 begin set @result = @result + (charindex(substring(@varchar, @i, 1), @hexstring) - 1) * power(16, @pow) set @i = @i - 1 set @pow = @pow + 1 end select @result ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 19:30:02 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
GreenSunrise, а что Вы хотите сделать? У меня то же возникла эта задача. Правда я ее еще не начинал решать. Теперь, наверное, время сэкономлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 19:42:12 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Задача дурацкая и нужная только в качестве заплатки на время перехода от одной версии софта, который мы пишем, к другой. Нужна внутри коллектива разработчиков :-) Есть таблица, в которой хранится бинарное поле и процедура, куда передается строковое значение как раз в виде '0x1234'. Закатать в таблицу, ессно, надо в бинарном. Вот :-) Вариант Glory меня вполне устраивает, эт я больше выпендриваюсь ;-) (вернее, пытаюсь выяснить на будущее, вдруг да пригодится в серьезной ситуации). 2 Dwarf: а у вас результат выполнения какой-то странноватый... 0x12340F0A. Для вашего примера хотелось увидеть 0x0123456789ABCDEF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 09:39:31 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
А так не пробовали ? :0) Код: plaintext 1. 2. 3. 4. 5. Документацию читают только ламеры ?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 09:49:14 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
2 (Тимур) И в результате будет: 0x3078313233343536 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 09:56:36 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Тимур, а ответы пишут только торопыжки? :-) mishgan2000 - именно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 10:14:05 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Объясните плиз такую вещь в варианте от Glory почему на выходе получаем 0x1234000000, т.е. 1234 она перенесла в старшие разряды, или так и должно быть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 10:23:05 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
В варианте Glory нужно заменить binary на varbinary, тогда дополнения нулями не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 10:29:23 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
DECLARE @Z varbinary(10) declare @X int EXEC xp_sscanf '0x12345F', '%lX', @X OUTPUT SELECT @X select @Z= cast(@X as varbinary(3)) select @Z select @Z= cast(@X as varbinary(5)) select @Z P.S. Так все-таки : документацию читают только ламеры ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:00:23 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
2GammiBear На Microsoft SQL Server 2000 - 8.00.679 (Intel X86) Aug 26 2002 15:09:48 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 3) строка EXEC xp_sscanf '0x12345F', '%lX', @X OUTPUT генерирует ошибку Msg 50002, Level 1, State 50002 Error executing extended stored procedure: Invalid Parameter Type ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:07:46 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Вроде бы уже много раз писали (в Books Online, в частности), что xp_sscanf, xp_sprintf работают только со строками: Currently only the %s format argument is supported. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:09:55 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Configuration : Microsoft SQL Server 2000 Developer Edition + SP2 (Intel X86) + Win2K PROF RUS SP3 Все работает на ура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:15:25 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
2GammiBear Это потому, уважаемый GammiBear, что Вы игнорируете хотфиксы. Если бы Вы удосужились и установили фикс, закрывающий дыру в xp_sprintf, то все бы не работало (как и дОлжно быть). Пришлите вывод select @@version ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:18:09 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
GreenSunrise: Результат тот, что нужно :) Посмотрите внимателно, что конвертится и для чего нужен @hexstring :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:23:05 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Microsoft SQL Server 2000 - 8.00.534 (Intel X86) Nov 19 2001 13:23:50 Copyright (c) 1988-2000 Microsoft Corporation Developer Edition on Windows NT 5.0 (Build 2195: Service Pack 2) P.S. 1. интересно сколько времени назад писался BOL? 2. Currently only ... supported лично я понимаю, что in future будет поддерживаться что-то еще 3. Интересный хотфикс получается, который гасит функциональность ... 4. Не понятно в чем бага , если sscanf понимает что-нибудь еще , кроме %s ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:33:54 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
2Dwarf: точно, извините за наезд :-) Возвращает то, что нужно. Только ваш способ все равно не катит, потому что при чуть более длинных строках начинается Arithmetic overflow error. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:39:06 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Странно, у меня не возникает никаких переполнений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:43:54 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
для BOL выходил сервис пак, это не шутка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 11:45:00 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
О переполнениях. Вместо Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 12:07:38 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
в варианте от Глори получаем 0x0123456789 в варианте от GammiBear получаем 0x89ABCDEF и никаких ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 12:27:57 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
2Dwarf: У Вас на входе '0x12340f0a', на выходе 0x1233FEFF... 2GammiBear Версия 8.00.534 соответствует "голому" SP2. Books Online декларирует поддержку только строк (%s) и то, что в исходных версиях "работали" другие спецификаторы - баг. Хотфикс, соответственно, чинит, а не гасит. Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 13:33:31 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
У _меня_ на выходе - 0x12340F0A ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 13:44:31 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
2Dwarf: Нет, увы... Именно для приведенного примера у Вас получается 0x1233FEFF на case-sensitive сервере... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 13:49:06 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
jimmers: А это и не удивительно :) set @varchar = UPPER('0x12340f0a') -- не судьба? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 14:21:59 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
GammiBear 2 jimmers : Мне всегда казалось , что документацию приводят в соответствие с функциональностью, а не наоборот .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 17:33:06 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
2Тимур Тогда получается, что баги нужно не исправлять а просто документировать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2002, 00:43:13 |
|
||
|
varchar -> binary
|
|||
|---|---|---|---|
|
#18+
Все таки не понятно , где баг в том , что sscanf понимает не только %s ????? Если бы он считывал данные неправильно - тогда без базара. Так ведь он правильно работает, собака !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2002, 09:06:28 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1819430]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 358ms |

| 0 / 0 |
