|
Запись картинок не в 1с базу данных
| ☑ |
0
kolts23381
29.08.15
✎
21:56
|
Хочу записать картинки в базу данных постре.
Пытаюсь так
"INSERT INTO images(
| image)
|VALUES("
+ Данные.Хранилище.Получить() + ")";
В отладчике вместо двоичных данных просто слово "картинка".
Тип данных колонки image bytea. Но ничего не записывается.
Получать картинки с другой базы данных и записать их в 1с могу, используя ADODB.Stream, а как записать в стороннюю базу не знаю
|
|
1
Стальная Крыса
30.08.15
✎
05:31
|
А байтики в текст кто переводить будет?
|
|
2
Стальная Крыса
30.08.15
✎
05:33
|
В одном месте значит ADODB.Stream, а тут почему не так?
|
|
3
kolts23381
30.08.15
✎
12:39
|
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();
Сейчас пробую так. Картинку пишет, правда пока не проверил правильно ли.Не хочет писать уникальный идентификатор, он имеет такой вид 'cbcf493f-55bc-11d9-848a-00112f43529a'. Через ADODB.Connection пишет без проблем.
|
|
4
kolts23381
30.08.15
✎
12:50
|
И картинка тоже не хочет. Тип данных может не нравится, bytea стоит.
|
|
5
jsmith82
30.08.15
✎
12:56
|
Данные.Хранилище.Получить() это и есть картинго
а если сначала в файл, а потом в двоичные данные
|
|
6
kolts23381
30.08.15
✎
14:45
|
Нашел на этот сайте такой способ
image = Новый COMОбъект("ADODB.Stream");
image.Type = 1;
image.Mode = 3;
image.Open();
image.LoadFromFile("C:\database\1.jpg");
Команда = Новый COMОбъект("ADODB.Command");
Команда.ActiveConnection = Connection;
Команда.NamedParameters = True;
Команда.CommandType = 1;
Команда.CommandText = "INSERT INTO images (image,product) VALUES(?,'"+ Данные.Объект.УникальныйИдентификатор() +"')";
ПараметрSQL=Команда.CreateParameter("@Pic", 205, 1,10000,image.Read());
image.Close();
Команда.Parameters.Append(ПараметрSQL);
Команда.Execute();
Выбивает ошибку:
Ошибка при записи изменений при обмене: Ошибка при вызове метода контекста (CreateParameter): Произошла исключительная ситуация (ADODB.Command): Приложение использует для текущей операции значение неверного типа.
|
|