Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Хранение бинарных данных в SQL таблице (число прочтений - 3825 )
Boog
Junior Member
**
Отсутствует



Сообщений: 95
Местоположение: Винница
Зарегистрирован: 23. Февраля 2009
Пол: Мужской
Хранение бинарных данных в SQL таблице
23. Декабря 2010 :: 15:57
Печать  
Доброе время суток!
Пытаюсь сохранить в таблице SQL очень длинную строку и, для экономии места, делаю:
Код
Выбрать все
БинДата = СоздатьОбъект("BinaryData");
стр = ЗначениеВСтрокуВнутр(ТЗСохр);
БинДата.pkCompress(стр); 


Дальше строку укладываю в SQL параметризированным запросом, где параметр определен
Код
Выбрать все
Запрос.ДобПараметр(1,18,,); 

, т.е. с типом VarBinary(max), и поле в таблице на SQL определено с таким же типом.
Запись в таблицу происходит без сообщений об ошибках, и какие-то данные там появляются (смотрел анализатором). А когда я добываю из таблицы данные:
Код
Выбрать все
Стр = ЗапросПолучитьТекстТаб.ВыполнитьСкалярный();
БинДата.pkDecompress(Стр); 


то в этом месте у меня ошибка: Недопустимые данные.

Подскажите кто-то, что я делаю не правильно???
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Хранение бинарных данных в SQL таблице
Ответ #1 - 23. Декабря 2010 :: 16:31
Печать  
смотри http://www.1cpp.ru/forum/YaBB.pl?num=1280497111/7#7
тип должен быть равным 19
  
Наверх
 
IP записан
 
Boog
Junior Member
**
Отсутствует



Сообщений: 95
Местоположение: Винница
Зарегистрирован: 23. Февраля 2009
Пол: Мужской
Re: Хранение бинарных данных в SQL таблице
Ответ #2 - 24. Декабря 2010 :: 07:54
Печать  
С типом 19 не работает. Пишет: Cannot insert the value NULL into column ... column does not allow nulls. INSERT fails.


Upd.
Я хочу записать в базу данные не из файла! А из переменной, без файловых операций!
Судя по документации, БинДата.pkCompress(стр) поместит в переменную стр данные, которые сейчас содержатся в объекте БинДата.
Но если я делаю
Код
Выбрать все
БинДата.pkCompress(стр);
БинДата.pkDecompress(стр);
 


то я получаю в стр те же данные, которые там были сначала.
Непонятно...
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Хранение бинарных данных в SQL таблице
Ответ #3 - 24. Декабря 2010 :: 08:18
Печать  
Boog писал(а) 24. Декабря 2010 :: 07:54:
С типом 19 не работает. Пишет: Cannot insert the value NULL into column ... column does not allow nulls. INSERT fails.


Upd.
Я хочу записать в базу данные не из файла! А из переменной, без файловых операций!
Судя по документации, БинДата.pkCompress(стр) поместит в переменную стр данные, которые сейчас содержатся в объекте БинДата.
Но если я делаю
Код
Выбрать все
БинДата.pkCompress(стр);
БинДата.pkDecompress(стр);
 


то я получаю в стр те же данные, которые там были сначала.
Непонятно...

Переменные 1с не могут хранить бинарных данных
точнее строковые переменные воспринимают символ
0х00  как конец строки и поэтому не могут хранить двоичные данные.

Если Вам подойдет Ищите мою компоненту(должна быть и на этом сайте) она позволяет хранить
бинарные данные в реквизите строка(неог дл)  справочника  или реквизите документа ( ее плюс работает с УРБД  минус как бы доп настройки компьютеров)



  
Наверх
 
IP записан
 
Boog
Junior Member
**
Отсутствует



Сообщений: 95
Местоположение: Винница
Зарегистрирован: 23. Февраля 2009
Пол: Мужской
Re: Хранение бинарных данных в SQL таблице
Ответ #4 - 24. Декабря 2010 :: 08:30
Печать  
Цитата:
Переменные 1с не могут хранить бинарных данных
точнее строковые переменные воспринимают символ
0х00  как конец строки и поэтому не могут хранить двоичные данные.

Если Вам подойдет Ищите мою компоненту(должна быть и на этом сайте) она позволяет хранить
бинарные данные в реквизите строка(неог дл)  справочника  или реквизите документа ( ее плюс работает с УРБД  минус как бы доп настройки компьютеров)


Название компоненты?
А каким методом данные должны попасть в объект БинДата, чтобы pkDecompress поместил их в переменную-приемник?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Хранение бинарных данных в SQL таблице
Ответ #5 - 24. Декабря 2010 :: 08:53
Печать  
смотри ветку ( посте 10 моя компонента как пользоваться внутри должно быть описание)
http://www.1cpp.ru/forum/YaBB.pl?num=1178538146/0
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Хранение бинарных данных в SQL таблице
Ответ #6 - 24. Декабря 2010 :: 09:26
Печать  
А что мешает дампнуть объект во временный файл и заслать его в скуль?
  
Наверх
 
IP записан
 
Boog
Junior Member
**
Отсутствует



Сообщений: 95
Местоположение: Винница
Зарегистрирован: 23. Февраля 2009
Пол: Мужской
Re: Хранение бинарных данных в SQL таблице
Ответ #7 - 24. Декабря 2010 :: 09:37
Печать  
Satans Claws писал(а) 24. Декабря 2010 :: 09:26:
А что мешает дампнуть объект во временный файл и заслать его в скуль?

Хочется уйти от файловых операций.
  
Наверх
 
IP записан
 
Boog
Junior Member
**
Отсутствует



Сообщений: 95
Местоположение: Винница
Зарегистрирован: 23. Февраля 2009
Пол: Мужской
Re: Хранение бинарных данных в SQL таблице
Ответ #8 - 24. Декабря 2010 :: 10:04
Печать  
Решил с помощью binfiles, всем спасибо.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Хранение бинарных данных в SQL таблице
Ответ #9 - 24. Декабря 2010 :: 10:05
Печать  
Boog писал(а) 24. Декабря 2010 :: 09:37:
Хочется уйти от файловых операций.


Заради чего?
Ради быстродействия или ради безопасности?  Смех
  
Наверх
 
IP записан
 
Boog
Junior Member
**
Отсутствует



Сообщений: 95
Местоположение: Винница
Зарегистрирован: 23. Февраля 2009
Пол: Мужской
Re: Хранение бинарных данных в SQL таблице
Ответ #10 - 24. Декабря 2010 :: 11:00
Печать  
Ради уменьшения нагрузки на диск.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать