我正在开发一个应用程序在德尔福。我试图提取保存在数据库中的图像,将其保存到TMemoryStream
,并将相同的图像加载到其他将动态填充的表单上的TImage
控件上。我得到访问冲突错误,当我尝试加载图像从流到图像控件放置在窗体上。访问冲突错误在delphi时保存/加载图像流/从流
错误描述如下在地址00B548C
访问冲突模块abc.exe。读地址0000000
我的代码片段如下:
UniConnection1.Connected := true;
UniQuery2.SQL.Text := 'Select image from userplays where id = :id';
UniQuery2.Params.ParamByName('id').Value := idpub1;
UniQuery2.Open;
if UniQuery2.FieldByName('image').AsString <> '' then
begin
try
Stream121 := TMemoryStream.Create;
TBlobField(UniQuery2.FieldByName('image')).SaveToStream(Stream121);
Stream121.Position := 0;
if Assigned(Stream121) then
begin
Image1.Picture.Graphic.LoadFromStream(Stream121);
Image1.Update;
end;
finally
Stream121.Free;
end;
end;
你检查过Image1.Picture.Graphic <> nil吗?你知道数据库中的图像类型吗? –
jpg图像在数据库中...实际上我只用数据库行测试它的图像。 –
所以做一些调试。你没有想到的地方有一个“无”指针。你的工作是解决问题。如果你不知道如何调试这段代码,那么你真正的问题不是这段代码,而是你的调试技巧。修复调试技巧,这个问题将会消失,并且将来每一个人都会喜欢它。换句话说,试图学习技能。 –