喫茶XRAYトップページ

[スレッド全体
]

[10555] Re6:Blobフィールドへの格納方法への質問返信 削除
2016/11/22 (火) 12:36:08 Mr.XRAY
▼ おかぽんさん,お久です.

> CopyFrom じゃなく SaveToStream を使うのがミソだったりして。。。

本人のレスがあって,Delphi XE7 だと OK で,Delphi 6 だとエラー発生
のようです.SaveToStream なのかな ?
調べてみないと分かりませんね.

ところで,サーバの障害直ったようですが.
https://my.7artisan.com/serverstatus.php


[10557] Re7:Blobフィールドへの格納方法への質問返信 削除
2016/11/22 (火) 18:16:04 おかぽん
▼ Mr.XRAYさん
> ところで,サーバの障害直ったようですが.
> https://my.7artisan.com/serverstatus.php

情報ありがとうございます。

直っちゃったのか〜・・・絶賛放置中だったのに(^^;)
あんまり放置しすぎて、サーバーへのアクセス方法から調べないと。
・・・という状況です

[10560] Re7:Blobフィールドへの格納方法への質問返信 削除
2016/11/24 (木) 20:02:31 Mr.XRAY
> 本人のレスがあって,Delphi XE7 だと OK で,Delphi 6 だとエラー発生
> のようです.SaveToStream なのかな ?
> 調べてみないと分かりませんね.


以下のコードでやってみました.Window 7 U64(SP1) + Delphi6 Pro(UP2) です.
ただし,JPGE 画像ファイルでのテストです.
画像ファイルを変えて実行してみましたが,エラーは発生しませんでした.
データを読み出して表示するのも行っています.

以下はサンプルに掲載しているコードではなく,
質問されたコードをコピペして,画像の部分だけ変えています.
もちろん,データベースは違いますが...


procedure TForm1.Button1Click(Sender: TObject);
var
  StrText   : String;
  FileStream : TFileStream;
  BlobStream : TStream;
begin
  ADOConnection1.Connected   := False;
  ADOConnection1.LoginPrompt := False;

  StrText := 'Provider=Microsoft.Jet.OLEDB.4.0';
  StrText := StrText + ';Data Source=' + '../BlobTest_BLOB.mdb';

  ADOConnection1.ConnectionString := StrText;
  ADOConnection1.Mode             := cmReadWrite;

  ADODataSet1.Connection := ADOConnection1;

  ADODataSet1.CommandText := 'SELECT * FROM TEST where ID=100 ';
  ADODataSet1.Active := True;
  ADODataSet1.Edit;

  //---------------------------------------------------------------------------
  //  上はデータベースへの接続用コード
  //  以下が実際の書き込みコード
  //---------------------------------------------------------------------------
  try
    BlobStream := ADODataSet1.CreateBlobStream(ADODataSet1.FieldByName('Graphic'), bmWrite);
    FileStream := TFileStream.Create(ExpandFileName('../501.jpg'), fmOpenRead or fmShareDenyNone);
    BlobStream.CopyFrom(FileStream, FileStream.Size);
    FileStream.Free;
    BlobStream.Free;
    ADODataSet1.Post;
  except
    ADODataSet1.Cancel;
  end;
  ADODataSet1.Active := false;
end;




[▼次のスレッド]
INCM/CMT
Cyclamen v3.82