我正在開發一個應用程序在德爾福。我試圖提取保存在數據庫中的圖像,將其保存到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圖像在數據庫中...實際上我只用數據庫行測試它的圖像。 –
所以做一些調試。你沒有想到的地方有一個「無」指針。你的工作是解決問題。如果你不知道如何調試這段代碼,那麼你真正的問題不是這段代碼,而是你的調試技巧。修復調試技巧,這個問題將會消失,並且將來每一個人都會喜歡它。換句話說,試圖學習技能。 –