jpeg、bmp画像の読み書きをするには?

解決


ぷぷ  2005-02-11 02:21:32  No: 13161

jpeg、bmp画像をDBで読み書きしたいのですが、上手くいきません。
画像を読むためにはTBlobStreamを使用するということが分かり、以下のようにしてみましたが、「無効なクラス型キャスト」とエラーが表示されます。
フィールドの型に問題があるのでしょうか?

var
  JPG1:  TJPEGImage;
  Strm: TBlobStream;
begin
  JPG1 := TJPEGImage.Create;
  JPG1.LoadFromFile('C:\Image1.jpg');
  ADOTable1.TableName := 'Table1';
  ADOTable1.Open;
  ADOTable1.Edit;
  ADOTable1.Locate('ID1;ID2;ID3',
                   VarArrayOf(['1', '1', '1']),
                   [loCaseInsensitive]);
  // BLOB ストリームを作成
  Strm := TBlobStream.Create(TBlobField(ADOTable1.FieldByName('Graphic1')), bmWrite);
  try
    // JPEG データをストリームに保存
    JPG1.SaveToStream(Strm);
    atblData1.Post;
  finally
    Strm.Free;
    JPG1.Free;
  end;
end;

「DBはAccsess2000」を使用し、読み書きするフィールドの型は「OLE オブジェクト型」に設定しています。

すみません、知ってらっしゃる方がいましたら教えてください。
よろしくお願いします。


ぷぷ  2005-02-11 03:47:01  No: 13162

自己レスです。
ADOの場合にはTBlobStreamではなくTADOBlobStreamなのですね。
解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加