Имя: Пароль:
1C
1С v8
Передача двоичных данных в MS SQL из 1С ?
0 Alex_MA
 
13.07.12
11:03
Всем доброго дня!

// инициализация соединенение

&НаСервере
Функция ИнициализацироватьСоединение(Соединение, ОписаниеОшибки)
   
   Соединение                   = Новый COMОбъект("ADODB.Connection");
   СтрокаКоннекта               = "driver=SQL Server;server="+СокрЛП("SQLCluster\Prima")+";"+"uid="+СокрЛП("User")+";"+"pwd="+СокрЛП("pwd")+";"+"Database="+СокрЛП("NameBd");
   Соединение.ConnectionTimeOut = 30;
   Соединение.CommandTimeOut    = 0;
   Соединение.CursorLocation    = 3;
   
   Попытка
       
       Соединение.Open(СтрокаКоннекта);
       
       Возврат Истина;
       
   Исключение
       
       ОписаниеОшибки = ОписаниеОшибки();
       
   КонецПопытки;

   Возврат Ложь;
   
КонецФункции

&НаСервере
Функция ПолучитьТекстЗапроса(Ссылка)
   
   ДопИнформацияПоЭД = ПрисоединенныеФайлы.ПолучитьДанныеФайла(Ссылка);
   
   Если ДопИнформацияПоЭД.Свойство("СсылкаНаДвоичныеДанныеФайла")
       И ЗначениеЗаполнено(ДопИнформацияПоЭД.СсылкаНаДвоичныеДанныеФайла) Тогда
       
       // Двоичные данные файла
       
       ДанныеЭД = ПолучитьИзВременногоХранилища(ДопИнформацияПоЭД.СсылкаНаДвоичныеДанныеФайла);
       
   КонецЕсли;    
   
   //INSERT INTO EX.XMLMAKET (N_KAGENT,XML_BODY,STATUS,DAT,DAT_CREATE,VID,TIP)
   //VALUES(@N_KAGENT,@XML_BODY,@STATUS,@DAT,@DAT_CREATE,@VID,@TIP);
   
КонецФункции




// Дальше запрос на вставку данных

ЗапросАДО = Новый COMОбъект("ADODB.Command");
   
ЗапросАДО.ActiveConnection = Соединение;
ЗапросАДО.CommandTimeOut   = 0;
   
ЗапросАДО.CommandText = ПолучитьТекстЗапроса(Ссылка);
ЗапросАДО.Execute();
   
// Уничтожим объекты
   
ЗапросАДО  = Неопределено;
Соединение = Неопределено;
   
Сообщить("Окончание обработки "+ТекущаяДата(),СтатусСообщения.Информация);
Предупреждение("Обработка завершена!",2);


Вопрос, как в параметры запроса "INSERT INTO EX.XMLMAKET (N_KAGENT,XML_BODY,STATUS,DAT,DAT_CREATE,VID,TIP)
   //VALUES(@N_KAGENT,@XML_BODY,@STATUS,@DAT,@DAT_CREATE,@VID,@TIP)" вставить двоичные данные ?
1 shuhard
 
13.07.12
13:05
(0)не взлетит
используй рекордсет и AppendChunk