現在、Lotus Approach のデータをInterBase(FireBird)に移行しようとしていますが、画像部分のデータ移行に難儀しています。
Imageに表示できれば何とかなると思ってますが、表示すら出来ない状況です。どうすれば表示出来るでしょうか?
システムは
Win 2000 or XP Home
Delphi 7
IBX にてFireBirdに移行予定
Approach 2000
dbf形式でdbtファイルが画像ファイルが入っていると思われます。
Approach 2000 はまったく分からないのですが
> どうすれば表示出来るでしょうか?
今はどのようにしてますか?
TBlobStream で読み出して、TGraphic.LoadFromStream で表示するという方法では駄目なのでしょうか?
>今はどのようにしてますか?
>TBlobStream で読み出して、TGraphic.LoadFromStream で表示するという方法では駄目なのでしょうか?
他のプログラムを作成したときに、TBlobStream などを使用し、クリップボードやファイルから読み出して表示することはできています。
また、SQL.FieldByName('****').asBlob で読み出しも表示可能です。でもでもApproachからは、同様にしてもうまくいきません。
Bitmap や Jpeg meatafailでは無いのでしょうか。また、DBTファイルはどのような構造で、DBFファイルとの関連がわかれば切り口があるような感じがします。
参照項目のように考えますが、切り口が?????
自己レスです
Approachの画像の読み出しを ADOを使用してやってみました、
Meta Bitmap Jpeg 全て違うとのエラーです。
下記のようにしています
procedure TForm1.Btn_MetaClick(Sender: TObject);
var
BS :TStream;
Meta :TMetafile;
begin
Meta := TMetafile.Create;
BS := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('******'),bmRead);
try
Meta.LoadFromStream(BS);
Image1.Picture.Graphic := Meta;
finally
BS.Free;
Meta.Free;
end;
end;
procedure TForm1.Btn_BitmapClick(Sender: TObject);
var
BS :TStream;
Bitmap:Tbitmap;
begin
Bitmap := TBitmap.Create;
BS := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('******'),bmRead);
try
Bitmap.LoadFromStream(BS);
Image1.Picture.Graphic := Bitmap;
finally
BS.Free;
Bitmap.Free;
end;
end;
procedure TForm1.Btn_JpegClick(Sender: TObject);
var
BS :TStream;
Jpeg :TJPEGImage;
begin
Jpeg := TJPEGImage.Create;
BS := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('*****'),bmRead);
try
Jpeg.LoadFromStream(BS);
Image1.Picture.Graphic := Jpeg;
finally
BS.Free;
Jpeg.Free;
end;
end;
> でもでもApproachからは、同様にしてもうまくいきません。
Excel やAccess (データベースデスクトップも?)で開く事は出来ますか?
> DBTファイルはどのような構造で、
http://ivarus.chat.ru/XBase.htm#DBT_STRUCT
> DBFファイルとの関連
dBase のフォーマットで、DBF が本体で、DBT はメモファイルらしいです。
画像はMEMO フィールドにバイナリとして格納するらしいです。
ツイート | ![]() |