|
|
|
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 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3393&tid=1819430]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 410ms |

| 0 / 0 |
