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

Delphi.DataSnap. Провайдеры. Загрузка картинки


petyaas

Вопрос

Проблема – не могу передать изображение с клиента  на сервер DataSnap и сохранить в СУБД MySQL

procedure TForm2.Button1Click(Sender: TObject);

var bmp:tbitmap; twic:twicimage;

begin

bmp:=tbitmap.Create; twic:=twicimage.Create;

opendialog1.Execute;

twic.LoadFromFile(opendialog1.FileName);

bmp.Assign(twic);

clientdataset1.append;

clientdataset1.FieldByName('name').Asstring:='Hello';

clientdataset1.FieldByName('Picture').Assign(bmp);

clientdataset1.Post;

clientdataset1.ApplyUpdates(0);

//clientdataset1.Refresh;

clientdataset1.Close;

clientdataset1.Open;

end;

 

 

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

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

  • 0
В 13.02.2016 в 20:13, petyaas сказал:

Проблема – не могу передать изображение с клиента  на сервер DataSnap и сохранить в СУБД MySQL

var
  strImagem: TMemoryStream;
  B: TBitmap;
begin
//создаем битмап меньше исходного в 4 раза
  B := TBitmap.Create(rectSign.Width div 2, rectSign.Height div 2);
  B.Clear(TAlphaColorRec.White);

//переносим исходное изображение в созданынй битмап
  if B.Canvas.BeginScene then
    try
      layoutPhoto.PaintTo(B.Canvas, TRectF.Create(, , B.Width, B.Height));
    finally
      B.Canvas.EndScene;
    end;

  try
//поток для изображения
    strImagem := TMemoryStream.Create;
//загружаем в него битмап
    B.SaveToStream(strImagem);
//возвращаем курсор потока в начало
    strImagem.Position := ;

    dm.qMDevice.SQL.Text := 'UPDATE Orders SET PHOTO = :PHOTO WHERE ROWID = :RowId';
    dm.qMDevice.ParamByName('RowId').AsInteger := SourceROW;
//загружаем в запрос изображение из потока
    dm.qMDevice.ParamByName('PHOTO').LoadFromStream(strImagem, ftBlob);
    dm.qMDevice.ExecSQL;
    dm.qMDevice.Close;
  except
    on e: Exception do
      Toast('Не удалось сохранить фото #7702:'#13#10 + e.Message);
  end;

//освобождем ресурсы
  FreeAndNil(B);
  FreeAndNil(strImagem);
end;

Как-то так делаю я.

Наверняка можно более изящно, с меньшим количеством кода. Подключитесь пожалуйста коллеги!

 

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

Как обычно, самый стандартный вопрос, на чем запускаете??? Какая ошибка вылетает? И получается вставить простые строковые поля?

Изменено пользователем Vitaldj
Ссылка на комментарий

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

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

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

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

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

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

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

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

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

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