我有一个使用 REST Datasnap 用 Delphi 10.1 编写的应用程序。
此应用程序包括客户端和服务器。
客户端是移动应用程序 (Android),服务器是连接到 firebird 数据库的 Windows 服务。
我有一个对象:-
TJob = class(TObject)
private
FID: Integer;
FThe_Name: String;
FImage: TMemoryStream;
public
constructor Create;
destructor Destroy;
end;
constructor TJob.Create;
begin
inherited;
FImage := TMemoryStream.Create;
end;
destructor TJob.Destroy;
begin
FreeAndNil(FImage);
inherited;
end;
当我尝试将服务器上的图像保存到数据库以及尝试打开并在客户端上显示图像时,我遇到了访问冲突。
我有一个独立的多设备应用程序,它使用与客户端/服务器相同的功能(获取、保存和显示图像)并且可以工作。
客户在表格上显示图像:-
if (Job.Image.Size > 0) then
begin
rectangle.Fill.Kind := TBrushKind.Bitmap;
rectangle.Fill.Bitmap.Bitmap.LoadFromStream(Job.Image);
rectangle.Repaint;
Layout.Repaint;
end;
客户从表单中获取图像:-
if not(rectangle.Fill.Bitmap.Bitmap.IsEmpty) then
begin
Job.Image.Seek(0, soFromBeginning);
rectangle.Fill.Bitmap.Bitmap.SaveToStream(Job.Image);
Job.Image.Position := 0;
end;
服务器将图像保存到数据库:-
Job.Image.Position := 0;
(TBlobField(FieldByName('MyImage'))).SaveToStream(Job.Image);
服务器从数据库获取图像:-
(TBlobField(FieldByName('MyImage'))).SaveToStream(Job.Image);
独立应用程序使用相同的方式工作,但是在尝试保存或显示图像时出现错误。
我已经用各种格式的图像填充了数据库,我可以在数据库中查看这些图像,但不能从客户端(AV)中查看。
关于我做错了什么的任何想法以及如何解决修复的示例?
谢谢