Delphi を使用して MySql データベースから TImage に画像を表示するのに問題があります。
このコードを使用して画像をデータベースに保存し、完全に機能します。
var
AStream : TMemoryStream;
AStream := TMemoryStream.Create;
try
Image1.Picture.Graphic.SaveToStream(AStream);
AStream.Position := 0;
if ADODataSet1.Active then
begin
ADODataSet1.Edit;
TBlobField(ADODataSet1.FieldByName('MyField')).LoadFromStream(AStream);
ADODataSet1.Post;
end;
finally
AStream.Free;
end;
しかし、問題はその写真を取得したいときです。このコードを使用しますが、データベースから最初の画像しか表示できません。DBGrid イベント - OnDrawColumnCell でこのコードを使用します。このコードを使用すると、メッセージ JPEG エラー #42 が表示されます。
var
AStream : TMemoryStream;
begin
AStream := TMemoryStream.Create;
try
if ADODataSet1.Active then
begin
TBlobField(ADODataSet1.FieldByName('MyField')).SaveToStream(AStream);
AStream.Position := 0;
Image1.Picture.Graphic.LoadFromStream(AStream);
end;
finally
AStream.Free;
end;
end;
誰かがこの問題を解決する方法を教えてもらえますか? ありがとうございました。