Jpeg画像のBlob項目への保存について


サンプー  2005-06-08 01:44:09  No: 15444  IP: 192.*.*.*

DL6、XPPro、BDEにてデータベースAppを製作中です。
フォームに、buttonを2個,Imageを1つおいて,Button1を押すとImageに画像を描画、Button2を押すとその画像をテーブルの’Photo’項目(属性はグラフィック・・データベースデスクトップにてテーブルは作成)に書き込むコードをQ&A等を参考に作成しました。
Jpeg形式の画像をテーブルに保存しようと考え、以下のコードを実行すると’ビットマップイメージが不正です’とのDBエラーが発生します。どなたかご教示下さい。

編集 削除
サンプー  2005-06-08 01:46:21  No: 15445  IP: 192.*.*.*

肝心のコードは、以下の通りです。
Use節には、JPEGを追加してあります。

procedure TFormtantouEntry.Button2Click(Sender: TObject);
  Var //呼込んだ画像をDBへ保存
      Strm : TBlobStream;
      Jpg: TJpegImage;
 begin
 Jpg := TJPEGImage.Create;
 Jpg.Assign(Image1.Picture.Graphic);
 DMSyaken.EmployTable.Edit;
 DMSyaken.EmployTable.Insert;
 Strm := TBlobStream.Create(TBlobField(DMSyaken.EmployTable.FieldByName('Photo')),bmWrite);
  try
  JPG.SaveToStream(Strm);
  DMSyaken.EmployTable.Post
 finally
 //DMSyaken.EmployTable.ApplyUpdates;
  Strm.Free;
  JPG.Free;

 end;
 DMSyaken.EmployTable.ApplyUpdates;
end;

編集 削除
HOta  2005-06-08 07:25:54  No: 15446  IP: 192.*.*.*

Jpg.Assign(Image1.Picture.Graphic);
 DMSyaken.EmployTable.FieldByName('Photo').Assign(Jpg);
でどうですか?

編集 削除
サンプー  2005-06-09 07:08:40  No: 15447  IP: 192.*.*.*

HOtaさん、いつもご教示ありがとうございます。
DMSyaken.EmployTable.FieldByName('Photo').Assign(Jpg);
でも、同じDBエラーが発生しました。

編集 削除
ん?  2005-06-09 08:16:42  No: 15448  IP: 192.*.*.*

ブレークポイントで止めて、ステップ実行すると、どの行でエラーになるのでしょう?

> Jpg.Assign(Image1.Picture.Graphic);
ここでエラーになってたりしません?

Image1の画像形式は?
D5のHelpにおけるTJPEGImage.Assign メソッドでは、以下のように記載されていましたが、これは大丈夫?
> Source は,Graphic プロパティが JPEG イメージまたはビットマップである TPicture 型

編集 削除
サンプー  2005-06-15 13:20:39  No: 15449  IP: 192.*.*.*

どうも、書き込み時にエラーになるようです。取りあえず、呼び込み、書き込むデータをびBitmap形式にて行うとうまくいくようなので、これにて代用します。

編集 削除