Update blob загрузка image

Обсуждение возникших проблем, предложений и ошибок MyDAC компонентов
Закрыто
imobile
Сообщения: 103
Зарегистрирован: Сб 12 ноя 2011 00:12

Update blob загрузка image

Сообщение imobile » Сб 08 фев 2014 13:41

Здравствуйте.
Есть blob поле.
Если изображение делаю insert, то нормально, изображение есть.
MyQuery1->ParamByName("image1")->LoadFromFile(Path, ftBlob);
Но если делаю Update, то выдает ошибку, что поле недостаточной длины.
Может я неправильно загружаю изображение.
Подскажите правильные варианты.

imobile
Сообщения: 103
Зарегистрирован: Сб 12 ноя 2011 00:12

Re: Update blob загрузка image

Сообщение imobile » Вс 09 фев 2014 12:25

Прошу прощения, insert или update не влияют.
Влияет размер картинки jpg, если 30 кбайт, то все нормально, если больше 170кбайт, то выдает ошибку, data too long for column

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: Update blob загрузка image

Сообщение Alexp » Ср 12 фев 2014 11:53

Добрый день,

Это поведение связано с настройками MySQL сервера. Для загрузки больших данных Вам необходимо увеличить значение серверной переменной max_allowed_packet в my.ini файле. Например:
max_allowed_packet = 16M

imobile
Сообщения: 103
Зарегистрирован: Сб 12 ноя 2011 00:12

Re: Update blob загрузка image

Сообщение imobile » Ср 12 фев 2014 19:36

А как программно изменить значение, просто многие клиенты даже не знают, что такое файлы, им будет сложно объяснить.

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

MyConnection2->ExecSQL("set global max_allowed_packet=350000000", NULL, 0);
не работает

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: Update blob загрузка image

Сообщение Alexp » Чт 13 фев 2014 08:23

Если Вы устанавливаете опцию с помощью команды SET значение в ini файле не изменяется, установка опции будет действовать до перезагрузки сервера. Для всех новых соединений.

P.S. После выполнения команды SET запрос

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

SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet'
будет отображать значение из ini файла, а не установленное значение

imobile
Сообщения: 103
Зарегистрирован: Сб 12 ноя 2011 00:12

Re: Update blob загрузка image

Сообщение imobile » Вс 16 фев 2014 10:12

Alexp писал(а):Если Вы устанавливаете опцию с помощью команды SET значение в ini файле не изменяется, установка опции будет действовать до перезагрузки сервера. Для всех новых соединений.
Так в теории. Меня бы это устроило, однако, если даже установить сразу перед загрузкой это значение(в той же сессии), все равно выходит ошибка.

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: Update blob загрузка image

Сообщение Alexp » Пн 17 фев 2014 08:32

D MySQL есть несколько типов BLOB полей
MySQL

TINYBLOB

A BLOB column with a maximum length of 255 (28 – 1) bytes. Each TINYBLOB value is stored using a one-byte length prefix that indicates the number of bytes in the value.


BLOB[(M)]

A BLOB column with a maximum length of 65,535 (216 – 1) bytes. Each BLOB value is stored using a two-byte length prefix that indicates the number of bytes in the value.

An optional length M can be given for this type. If this is done, MySQL creates the column as the smallest BLOB type large enough to hold values M bytes long.


MEDIUMBLOB

A BLOB column with a maximum length of 16,777,215 (224 – 1) bytes. Each MEDIUMBLOB value is stored using a three-byte length prefix that indicates the number of bytes in the value.


LONGBLOB

A BLOB column with a maximum length of 4,294,967,295 or 4GB (232 – 1) bytes. The effective maximum length of LONGBLOB columns depends on the configured maximum packet size in the client/server protocol and available memory. Each LONGBLOB value is stored using a four-byte length prefix that indicates the number of bytes in the value.
проверьте что используемый тип поля позволяет вставить Ваши данные

imobile
Сообщения: 103
Зарегистрирован: Сб 12 ноя 2011 00:12

Re: Update blob загрузка image

Сообщение imobile » Вс 23 фев 2014 18:50

Спасибо.
Не знал что medium blob больше blob.

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: Update blob загрузка image

Сообщение Alexp » Пн 24 фев 2014 08:05

Пожалуйста. Обращайтесь к нам если у Вас еще возникнут вопросы по MyDAC.

Закрыто