Имя: Пароль:
1C
1С v8
Поместить ХранилищеЗначения во внешний источник
,
0 xXeNoNx
 
26.10.16
11:21
Всем привет!
Нужно запихнуть во внешний источник двоичные данные с сжатием(!!!)
Внешний источник - таблица в MS SQL

Кто сталкивался с проблемой и как решали, если можно с примерами?(Желательно код хранимой процедуры)
1 Franchiser
 
гуру
26.10.16
11:26
Можно передать в sql картинку (двоичные данные), где-то видел код.
2 Franchiser
 
гуру
26.10.16
11:28
image = Новый COMОбъект("ADODB.Stream");
image.type = 1;
image.Open();
image.LoadFromFile("C:\database\1.jpg");
RecordSet    =    Новый COMОбъект("ADODB.Recordset");
RecordSet.CursorLocation    =    3;
RecordSet.ActiveConnection = Connection;
RecordSet.Open("Select * FROM images",Connection,2,3);
RecordSet.AddNew();
RecordSet.Fields("image").Value = image.Read();
Recordset.Fields("product").Value = Данные.Объект.УникальныйИдентификатор();    
RecordSet.Update();
RecordSet.Close();
3 xXeNoNx
 
26.10.16
11:28
(1) не.., это реализовано и норм работает, но таблица(MS SQL) получается растет капец как..., поэтому нужно именно сжатие
4 oleg_km
 
26.10.16
11:44
Если не брезговать .NET, то я использую System.IO.Compression.GZipStream. Код не приведу, т.к. достаточно много: и инициализация .NET, потом сериализация и сжатие.
5 xXeNoNx
 
26.10.16
12:04
(4) достаточно использовать конструкцию
Новый ХранилищеЗначений(данные, Сжатие(9))
6 xXeNoNx
 
26.10.16
15:44
Больше интересно как преобразуется ХранилищеЗначений при записи в базу
7 МихаилМ
 
26.10.16
15:54
(6) преобразуется в значение внутренние и жмется дефдэйт
8 oleg_km
 
26.10.16
17:04
(6) А как вы ХранилищеЗначений записываете в таблицу в MS SQL? ВнешнийИсточник? Ну так посмотрите в Profiler
9 Franchiser
 
гуру
27.10.16
02:21
(0) имея бинарные данные сохраняете во временный файл, архаизируете штатно в zip или нештатно рар, после чего преобразуете файл обратно в бинарные данные, которые пихаете в sql стандартно.
10 Franchiser
 
гуру
27.10.16
02:26
почему не подходит вариант с Новый ХранилищеЗначений(данные, Сжатие(9)) ?