The record will be stored in DB wihout error. But when I try to read it from DB I get this message: "not supported stream format". The same code used in VCL application on windows PC an internal camera and Ado-Query works fine!
How can I store an camera Image to MSSQL-DB in Delphi FMX application running at Android smartphone?
Code: Select all
procedure TfrmMain.SaveImage_in_DB(Sender: TObject);
var MStream: TMemoryStream;
sql_str : string;
_rec_cnt : integer;
begin
MStream := TMemoryStream.Create;
try
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
sql_str := 'select * from sign';
ADOQuery1.SQL.Add(sql_str);
ADOQuery1.Open;
if ADOQuery1.RecordCount > 0 then
_rec_cnt := ADOQuery1.RecordCount;
MStream.Position := 0;
// Image1.Bitmap.SaveToStream(MStream); -> FMX-Variante !!!!
// Image1.Picture.SaveToStream(MStream); -> VCL-Variante !!!!
imgProfile.Picture.SaveToStream(MStream);
MStream.Position := 0;
ADOQuery1.Append;
ADOQuery1.FieldByName('ID').AsInteger := _rec_cnt + 1;
ADOQuery1.FieldByName('DateTime').AsDateTime := now;
TBlobField(ADOQuery1.FieldByName('image1')).LoadFromStream(MStream);
ADOQuery1.Post;
ADOQuery1.Close;
except
on E: Exception do
begin
ShowMessage('Error: ' + E.ClassName + ' ' + E.Message);
end;
end;
MStream.Free;
end;