petyaas Опубликовано 13 февраля, 2016 Поделиться Опубликовано 13 февраля, 2016 Проблема – не могу передать изображение с клиента на сервер 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; Pax Beach 1 Цитата Ссылка на комментарий
0 Pax Beach Опубликовано 22 апреля, 2016 Поделиться Опубликовано 22 апреля, 2016 В 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; Как-то так делаю я. Наверняка можно более изящно, с меньшим количеством кода. Подключитесь пожалуйста коллеги! Rusland 1 Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 22 апреля, 2016 Поделиться Опубликовано 22 апреля, 2016 (изменено) Как обычно, самый стандартный вопрос, на чем запускаете??? Какая ошибка вылетает? И получается вставить простые строковые поля? Изменено 22 апреля, 2016 пользователем Vitaldj Цитата Ссылка на комментарий
Вопрос
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;
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.