Сохранение BLOB полей с картинками в MySQL

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
java73
постоялец
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

Сохранение BLOB полей с картинками в MySQL

Сообщение java73 »

Снова здравствуйте)
Теперь у меня такой баг/фича в своей базе данных.
Есть поле, тип его в MYSQL 5.6 - MEDIUMBLOB, должен есть в общем все что угодно до 16Мб.
Связан с компонентом DBImage
В общем, при вставке в поле картинки из файла размера 160 кб, сохраняется нормально запись в таблице
Если ту же картинку вставлять из буфера обмена, то в таблица при сохранении крашится с ошибкой типа "SQL сервер улетел..."
Ниже код, который вставляет картинку в компонент на форме (через прокладку - переменную типа TPicture)

Код: Выделить всё

procedure TDsnpatentsForm.PasteFileButtonClick(Sender: TObject);
var
  Pic: TPicture;
begin
  if OpenDialog.Execute then begin
     Pic:=TPicture.Create;
     Pic.LoadFromFile(OpenDialog.FileName);
     PatentImage.Picture.Assign(Pic);
     Pic.Free;
  end;
end;

Код вставки из буфера самый обычный, одной строчкой

Код: Выделить всё

PatentImage.Picture.Assign(Clipboard); 

Если вставлять из буфера уменьшенное изображение той же картинки, то сохраняется нормально.
Такой вот то ли глюк, то ли я не то что-то делаю. Хотелось бы, наоборот, премимущественно из буфера обмена заполнять данными базу, а не по отдельному файлу картинки добавлять.
Аватара пользователя
DYUMON
постоялец
Сообщения: 234
Зарегистрирован: 11.03.2009 12:32:54
Контактная информация:

Сообщение DYUMON »

У mysql буфер какого размера? И сколько время ожидание запроса? У меня такое было на настройках mysql по умолчанию.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Возможно опция max_allowed_packet
http://backnet.ru/2012/02/13/mysql-max_ ... er-paketa/
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

java73 писал(а):из файла размера 160 кб


java73 писал(а): ту же картинку вставлять из буфера обмена


А ничего, что то и другое никакого отношения к размеру файла не имеет и оперирует с некомпрессированным bitmap, размер которого может оказаться отнюдь на 160 кб? А из буфера обмена может прилететь еще и OLE-объект, который еще больше
Ответить