Доброе всем утро !
Возникла необходимость записи графических файлов (тип jpg) в базу SQL.
Файлы jpg хранятся на диске в определенном каталоге.Как записывать строковые значения из 1с в базу sql понятно,
а вот как с графикой команду писать ?
Поток = Новый COMОбъект("ADODB.Stream");
Поток.Type = 1;
Поток.Open();
Поток.LoadFromFile(ПолноеИмяФайла);
...НужноеПоле.SQL= Поток.Read();
Поток = Новый COMОбъект("ADODB.Stream");
Поток.Type = 1;
Поток.Open();
Поток.LoadFromFile(ПолноеИмяФайла);
Строка64=Base64Строка(Поток.Read());
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
СтрокаБэйс64 = Base64Строка(ДвоичныеДанные);
ДвоичныеДанные = Новый ДвоичныеДанные("c:\san\s.jpg");
СтрокаБэйс64 = Base64Строка(ДвоичныеДанные);
Значение=Base64Значение(СтрокаБэйс64);
..НужноеПоле.SQL= Значение;
ДвоичныеДанные = Новый ДвоичныеДанные("c:\san\s.jpg");
СтрокаБэйс64 = Base64Строка(ДвоичныеДанные);
..НужноеПоле.SQL= СтрокаБэйс64;
ДвоичныеДанные = Новый ДвоичныеДанные("c:\san\s.jpg");
..НужноеПоле.SQL= Base64Строка(ДвоичныеДанные);
СодержимоеФайла = Base64Строка(Новый ДвоичныеДанные(ПутьФайла));
Картинка = Новый Картинка(ПутьФайла);
ИмяВрФайла = ПолучитьИмяВременногоФайла();
Картинка.Записать(ИмяВрФайла);
СодержимоеФайла = Base64Строка(Новый ДвоичныеДанные(ИмяВрФайла));
Картинка = Новый Картинка("c:\san\s.jpg");
ИмяВрФайла = ПолучитьИмяВременногоФайла();
Картинка.Записать(ИмяВрФайла);
СодержимоеФайла = Base64Строка(Новый ДвоичныеДанные(ИмяВрФайла));
ТекстЗапросаADO ="Insert into tbFoto (Active,MainID,Foto) Values (1,'" + un + "','"+СодержимоеФайла+"')";
Connection.Execute(ТекстЗапросаADO,,128);
Поток = Новый COMОбъект("ADODB.Stream");
Поток.Type = 1;
Поток.Open();
Поток.LoadFromFile("c:\san\s.jpg");
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet.CursorLocation = 3;
RecordSet.LockType = 4;
Запрос = "";
RecordSet.Open("Select * from tbFoto", Connection);
RecordSet.AddNew();
ТекстЗапросаADO ="SET IDENTITY_INSERT tbFoto OFF";
Connection.Execute(ТекстЗапросаADO,,128);
RecordSet.Fields("MainID").Value = un;
RecordSet.Fields("Foto").Value = Поток.Read(-1);
RecordSet.Fields("Active").Value = 1;
RecordSet.Update();
Поток.Close();
RecordSet.Close();
ТекстЗапросаADO ="INSERT INTO tbFoto (Foto) SELECT * FROM OPENROWSET(BULK N'C:\san\s.jpg', SINGLE_BLOB)";
Connection = Новый COMОбъект("ADODB.Connection");
unn=ТекущаяДата();
Картинка = Новый Картинка("c:\san\s.jpg");
ИмяВрФайла = ПолучитьИмяВременногоФайла();
Картинка.Записать(ИмяВрФайла);
СодержимоеФайла = Base64Строка(Новый ДвоичныеДанные(ИмяВрФайла));
un=Новый УникальныйИдентификатор;
ТекстЗапросаADO ="Insert into tbFoto (MainID,Active,EditDate,Foto) Values ('" + un + "',1,'"+unn+"','"+СодержимоеФайла+"')";
Connection.Execute(ТекстЗапросаADO,,128);
Поток = Новый COMОбъект("ADODB.Stream");
Поток.Type = 1;
Поток.Open();
Поток.LoadFromFile("c:\san\s.jpg");
файл_=Поток.Read();
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet.CursorLocation = 3;
RecordSet.LockType = 4;
RecordSet.Open("Select MainID,Active,EditDate,Foto from tbFoto", Connection);
RecordSet.AddNew();
un=Новый УникальныйИдентификатор;
RecordSet.Fields("MainID").Value = un;
RecordSet.Fields("Foto").Value = Поток.Read(-1);
RecordSet.Fields("Active").Value = 1;
RecordSet.Fields("EditDate").Value =ТекущаяДата();
RecordSet.Fields("Foto").Value = Поток.Read(-1);
RecordSet.Update();
Поток.Close();
RecordSet.Close();
un=Новый УникальныйИдентификатор;
RecordSet.Fields("MainID").Value = un;