Перейти к содержанию
Fire Monkey от А до Я
  • 0

Загружается половина картинки в базу MySql


gubinden@mail.ru

Вопрос

Добрый день. Пытаюсь загрузить изображение в базу MySql, в итоге загружается лишь часть изображения (в вложении слева оригинал, справа что загрузилось). Что в коде сделано неправильно?

var

fs:TMemoryStream;

begin

Im_cert.Bitmap.Assign(image);
 try
    Fauthorization.Uq.SQL.Clear;
    Fauthorization.Uq.SQL.Add('insert  u1133772_default.certificates');
    Fauthorization.Uq.SQL.Add('(id_o_u,attachment ) VALUES ( ');
    Fauthorization.Uq.SQL.Add('''' + id_user + ''', ');
    Fauthorization.Uq.SQL.Add(':image)');

fs := TMemoryStream.Create;

Im_cert.Bitmap.SaveToStream(fs);

Fauthorization.Uq.Params[0].LoadFromStream(fs, ftBlob);

Fauthorization.Uq.ExecSQL;

fs.Free;

Fauthorization.Uq.Active := false;
showmessage('Загружено');

 

Если поставить Fauthorization.Uq.Params[0].Assign(image); происходит аналогично.

Если 

fs_on:=Tfilestream.Create(opendialog1.filename,fmOpenRead);   
Fauthorization.Uq.ParamByName('image').LoadFromStream(fs_on,ftBlob);

То все загружается нормально, но нужно загрузить bitmap не по названию файла.

El9mZr5x.png

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

0. нафега лишние преобразования image?

  было сделано для проверки, думал в это дело

1. Не жирно битмапы в базе? пользуй png/jpeg или в формате п.0

пример

2. streamы надо иногда перематывать... position=0

не помогло

 

если сделать через файл

   fs_on:=Tfilestream.Create(opendialog1.filename,fmOpenRead);   //   идет но по названию файла, нужно TBitmap
        Fauthorization.Uq.ParamByName('image').LoadFromStream(fs_on,ftBlob);
        Fauthorization.Uq.Execute;
       fs_on.Free;

все загружается нормально

Ссылка на комментарий
  • 0

0. нафега лишние преобразования image?

  было сделано для проверки, думал в это дело

1. Не жирно битмапы в базе? пользуй png/jpeg или в формате п.0

пример

2. streamы надо иногда перематывать... position=0

не помогло

 

если сделать через файл

   fs_on:=Tfilestream.Create(opendialog1.filename,fmOpenRead);   //   идет но по названию файла, нужно TBitmap
        Fauthorization.Uq.ParamByName('image').LoadFromStream(fs_on,ftBlob);
        Fauthorization.Uq.Execute;
       fs_on.Free;

все загружается нормально

 

загружается почему-то только 65535 байт

 

все решилось. всем спасибо

Изменено пользователем gubinden@mail.ru
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...