設定 PostgreSQL ODBC 時,要把圖中的「bytea as LO」選項勾起來,這樣使用 bytea 欄位型態就會被判別成 TBlobField,而不是 TVarBytesField
如此一來,就可以使用 TBlobField.LoadFromFile() 跟 SaveToFile() 來存入與讀取 bytea 欄位的內容了
若讀取時只想使用 TImage 顯示,不想存檔也可以 (以 JPG 圖檔為例子)
uses jpeg; // 支援 JPEG 圖檔
var blob: TStream;
blob := ADODataSet1.CreateBlobStream(BlobField, bmRead);
try
blob.Seek(0, soFromBeginning);
Image1.Picture.Graphic := TJPEGImage.Create;
Image1.Picture.Graphic.LoadFromStream(blob);
finally
blob.Free
end;
沒有留言:
張貼留言