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;