|
Как записать в базу mysql в поле с типом blob картинку? | ☑ | ||
---|---|---|---|---|
0
redding
02.11.15
✎
22:27
|
Попробовал два варианта:
1) Привести фоток типу comsafearray, а дальше, что с ним делать непонятно, просто через запрос не запишешь в базу. 2)через Base64 тоже ни але. Вообще реально средствами 1с обойтись или нужно вк или скрипты юзать? |
|||
1
Записьдампа
02.11.15
✎
22:42
|
Подключение через ADO, через ODBC - внешние источники, или через как?
|
|||
2
redding
02.11.15
✎
22:44
|
(1) Через ADO
|
|||
3
Записьдампа
02.11.15
✎
22:47
|
(2) Через AppendChunk
За примерами - в гугль. |
|||
4
kiruha
02.11.15
✎
22:48
|
Base64 летит и журчит в компании топ 100. Вызовите спеца если не але
|
|||
5
redding
02.11.15
✎
22:49
|
(4) Лучше бы пример скинули, журчащего Base64.
|
|||
6
kiruha
02.11.15
✎
22:52
|
Я уже не на работе. А чего там пример - преобразуешь люой файл в Base64 и записываешь
|
|||
7
redding
02.11.15
✎
23:05
|
(6)
ДД = Новый ДвоичныеДанные(ДанныеФайла.ПолноеИмяФайла); Строка64 = Base64Строка(Двоич); ТекстЗапроса = "INSERT INTO Photo (ID, PREVIEW_RASTER) VALUES("+id+", '"+Строка64+"')"; Так? |
|||
8
Кирпич
02.11.15
✎
23:18
|
Ищи ado Stream наверное
|
|||
9
Кирпич
02.11.15
✎
23:21
|
||||
10
redding
02.11.15
✎
23:21
|
(8)
Поток = Новый COMОбъект("ADODB.Stream"); Поток.Type = 1; Поток.Open(); Поток.LoadFromFile(ДанныеФайла.ПолноеИмяФайла); ПотокБайт = Новый ComSafeArray(Поток.Read()); Для этого? |
|||
11
Кирпич
02.11.15
✎
23:28
|
Для (9)
|
|||
12
kiruha
03.11.15
✎
01:23
|
(7) Примерно. У меня немного сложнее - через вебсервис, а в ado с параметрами работаю - нет проблем с спецсимволами и т.п.
|
|||
13
redding
03.11.15
✎
13:05
|
(3) Спс за наводку.
Данные записываются, но если смотреть SQL менеджером, то фото отображаются в виде html корректно, а в виде изображения совсем не отображаются, не определен тип и размер. Не знаешь, где косяк? Пишу в базу вот так: НаборЗаписей = Новый COMОбъект("ADODB.Recordset"); КомандаSQL = Новый COMОбъект("ADODB.Command"); КомандаSQL.ActiveConnection = Соединение; КомандаSQL.CommandText= "INSERT INTO Photo(id, PREVIEW_RASTER) VALUES(?, ?)"; КомандаSQL.CommandType=1;//adCmdText ПараметрSQLFileID = КомандаSQL.CreateParameter("id", 200, 1, 36);//adVarChar, adParamInput ПараметрSQLFileID.Value = Число(данныеФайла.Id); КомандаSQL.Parameters.Append(ПараметрSQLFileID); //создаем АДО поток для чтения файла Поток = Новый COMОбъект("ADODB.Stream"); Поток.Type = 1; Поток.Open(); Поток.LoadFromFile(ДанныеФайла.ПолноеИмяФайла); ПараметрSQLObject = КомандаSQL.CreateParameter("PREVIEW_RASTER", 128, 1, Поток.Size);//adLongVarBinary, adParamInput Пока НЕ Поток.EOS Цикл ПараметрSQLObject.AppendChunk(Поток.Read(10240)); КонецЦикла; КомандаSQL.Parameters.Append(ПараметрSQLObject); НаборЗаписей=КомандаSQL.Execute(); |
|||
14
vde69
03.11.15
✎
13:24
|
(13)поменяй тип поля с блоба на имедж
|
|||
15
redding
03.11.15
✎
13:28
|
(14) Что за тип такой имедж? нет у меня его в списке выбора типов в mysql.
|
|||
16
vde69
03.11.15
✎
13:31
|
(15) в MSSQL называется "image" в мускуле не знаю есть или нет....
|
|||
17
vde69
03.11.15
✎
13:32
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |