Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как записать картинку во внешнюю SQL базу

Как записать картинку во внешнюю SQL базу
Я
   ЭЦ
 
11.01.13 - 15:14
Господа !
Есть необходимость обработкой писать данные во внешнюю базу MS SQL.
Все типы пишутся нормально, но записать картинку в Blob поле не получается.
Прошу подсказать рабочий пример.
Спасибо
 
 
   mikecool
 
1 - 11.01.13 - 15:15
http://www.1c-galaxy.ru/forum4/topic410837/
первая ссылка по красной Я
   pessok
 
2 - 11.01.13 - 15:20
(1) там вроде не решили :)
(0) в блоб у меня тоже не писалось как-то, в итоге клали на фтп, а вместо блоба сделали стринг с названием картинки. уже потом веб-сервис грузил на сайт с фтп
   ЭЦ
 
3 - 11.01.13 - 15:20
насчет первой ссылке - не понял, а за пример спасибо щас будем пробовать
   mikecool
 
4 - 11.01.13 - 15:21
(2) а я не разбирал, просто механизм немного путанный, но когда то сам делал и все работало
   mikecool
 
5 - 11.01.13 - 15:21
+4 отличие есть в методике заливки через разные провайдеры
   pessok
 
6 - 11.01.13 - 15:22
(4) а вот у меня вроде не писало... а может и писало, но сайтостроители не могли блоб разобрать... не помню, помню, что делали фтп :)
   ЭЦ
 
7 - 12.01.13 - 17:28
ЕСли кому интересно то вот так пишет :

Попытка
    Поток = Новый COMОбъект("ADODB.Stream");
    Поток.Type = 1;
    Поток.Mode = 3;
    Поток.Open();
    Поток.LoadFromFile(фИмяФайла); 

    ЗагружаемыйФайл = Новый ДвоичныеДанные(фИмяФайла);
 
    Команда = Новый COMОбъект("ADODB.Command"); 
    Команда.ActiveConnection = SQLСоединение; 
    Команда.NamedParameters = True;
    Команда.CommandType = 1;
     Команда.CommandText = "UPDATE Anketa SET Anketa.Anketa_Pic = ? WHERE Anketa.Anketa_Guid = '395e5380-44fa-11e1-9025-00155dc80406'";
     ПараметрSQL=Команда.CreateParameter("@Pic", 205, 1,10000,Поток.Read());
    
    Поток.Close();
    
    Команда.Parameters.Append(ПараметрSQL);
      Команда.Execute();    
    
    Исключение
        Сообщить("НЕУДАЧНАЯ ПОПЫТКА ЗАПИСИ ИЗОБРАЖЕНИЯ !",СтатусСообщения.Важное);
        Сообщить("  описание = " + ОписаниеОшибки());
    КонецПопытки;
    SQLСоединение.Close();
   mikecool
 
8 - 12.01.13 - 17:30
(7) нормально так ))
а ЗагружаемыйФайл = Новый ДвоичныеДанные(фИмяФайла); зачем?
   mikecool
 
9 - 12.01.13 - 17:32
и вопрос: вот это нельзя было сократить?
    Поток.Open();
    Поток.LoadFromFile(фИмяФайла); 
    Поток.Read()
может там все в одну строку делается...
   vde69
 
10 - 12.01.13 - 18:23
(7) с большими файлами будут проблеммы

более правильно использовать спец оператор AppendChunk   который "кусочками" отправляет данные

пример вот тут http://infostart.ru/public/16687/ только тип поля там в базе другой но будет работать и с имж
 
 Рекламное место пустует
   ЭЦ
 
11 - 12.01.13 - 19:17
Господа
Я Вам выложил работающий пример
если есть желание улучшить - то улучшите и выложите работающий код.
Это будет правильно
   ЭЦ
 
12 - 12.01.13 - 19:18
Например хотелось бы юзать параметр по наименованию а не по номеру.
   vde69
 
13 - 12.01.13 - 21:15
(11) ты в своем примере не сможешь залит файл в 100 метров, ну не сможешь по определению и даже в 10 метров скорее всего не сможешь и дажу в 1 метр зальешь только если на сервере будет дофига памяти....
   Jofa
 
14 - 12.01.13 - 21:32
(13)Напиши свой пример
   vde69
 
15 - 12.01.13 - 22:08
   vde69
 
16 - 12.01.13 - 22:11
(15) + сам офигел, пример 7 ми летней давности
   Jofa
 
17 - 12.01.13 - 22:17
(15)Таким образом любой файл можно записать?
   vde69
 
18 - 12.01.13 - 22:42
(17) в разумных пределах, сколько сам скуль тянет
   Jofa
 
19 - 13.01.13 - 12:32
(18)Что ты подразумваешь под "сам скуль тянет"?
   vde69
 
20 - 13.01.13 - 18:03
(19) у самого скуля есть ограничения на размер поля имж, на память не помню какие, да и от версий вроде зависит вообще максимальный размер базы, например на стандарт едишен теробайный имдж не возмет по определению...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует