Имя: Пароль:
1C
1С v8
Получить хранилище значений из SQL
,
0 LouRENs
 
11.12.17
16:01
Добрый день, есть запрос: "Select _Fld4652 from BSP.dbo._InfoRg4648"
где, _Fld4652 - varbinary (max) - в нем хранится хранилище значений.

Выборка возвращает массив чисел. Много пересмотрел тем по этому поводу, но как то не сформировалось мнения что нужно делать. Видел и про отсечение первых 83 байт и преобразование в строку. Но не взлетело.
1 lodger
 
11.12.17
16:07
а что примерно лежит в ХЗ? платформенные ништяки(.xml)? картинки или разные файлы?
2 LouRENs
 
11.12.17
16:10
(1) вообще там строка, которую помещают в хранилище значения.
вообще это база БСП и регистр "Дома здания строения", а поле "Строения"
3 lodger
 
11.12.17
16:42
ну а банальное гугльнуть: ms sql get string from varbinary?
4 lodger
 
11.12.17
16:44
SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);
using "2" cuts off the "0x" at the start of the varbinary.
5 Вафель
 
11.12.17
16:46
там же сжатые данные лежат наверняка
6 LouRENs
 
11.12.17
16:48
я пробовал такое:

declare @b varbinary(max)
set @b = 0x0201534B6FF4888DC14EA0D5EBB6BDA0A70DEB608080F7BBF7572B052BE92825F9071AFB149AA7055ABA17240744FA58B88707A795DBDA7266701A719A71721A708259967096059C650E679942594082D390D3042C666800973682B30CE12C63104BA91600

select cast(@b as varchar(max))

и получилось "SKoф€ЌБN Хл¶Ѕ § л`ЂЂч»чW++й(%щыљ§Zє$DъXё‡§•ЫЪrfpqљqrp‚Y–p–њeg™BY@‚УђУ,fh"
7 Вафель
 
11.12.17
16:51
(6) нужно unzip еще делать
8 ИТ директор
 
11.12.17
16:55
(0) А зачем тебе это надо чувак? Работа с БД напрямую это нарушение лиц. согл., сорри за баян.
9 nicxxx
 
11.12.17
17:14
(8) А кто про это узнает и что за это будет?
10 LouRENs
 
11.12.17
17:21
хотим использовать один кладр на несколько раз.

SELECT CONVERT(VARCHAR(1000),0x0201534B6FF4888DC14EA0D5EBB6BDA0A70DEB608080F7BBF7572B052BE92825F9071AFB149AA7055ABA17240744FA58B88707A795DBDA7266701A719A71721A708259967096059C650E679942594082D390D3042C666800973682B30CE12C63104BA91600 , 2);

вот такой результат

0201534B6FF4888DC14EA0D5EBB6BDA0A70DEB608080F7BBF7572B052BE92825F9071AFB149AA7055ABA17240744FA58B88707A795DBDA7266701A719A71721A708259967096059C650E679942594082D390D3042C666800973682B30CE12C63104BA91600

т.е. все тоже самое минус два символа
11 mehfk
 
11.12.17
17:33
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший