FieldByNameとParamByNameの違い

解決


yTake  2014-07-28 22:17:32  No: 46501  IP: [192.*.*.*]

yTakeです。

他のQ&Aを参考にさせてもらって、Firebird DBのBLOB型フィールドへ画像データを登録読み出しを試みました。

次の様にしましたが、EDatabaseError メッセージ'IBQuery'パラメータ'IMAGE_1'がみつかりませんとなります。
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
var
  MStrm : TMemoryStream;


MStrm := := TMemoryStream.Create;

with IBQuert do 
begin
  for i := 0 to max 
  begin
    SQL.Text :='SELECT * from TBL1 where ID = ''' + IntToStr(i) + '''';
    Open();
    MStrm.LoadFromFile( Info[ i ].Image_filename );
    FieldByName( 'ID' ).Value;
    ParamByName( 'IMAGE_1' ).LoadFromStream( MStrm, ftBlob );
    Close();
  end;
end;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Firebird DB上では、'IMAGE_1'と言うフィールドはありますが、'IMAGE_1'と言うパラメータはありません。

格納すべき入れ物は、フィールドだと思うのですが、、、


読み出しは、次の様に考えています。
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
var
  Strm : TStream;


Strm := CreateBlobStream( FieldByName('Image_1'), bmRead );

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ご教授頂ければと思います。


環境:
DELPHI XE3 + Firebird v2.5
Windows 7

です。

編集    削除
take  2014-07-29 00:27:36  No: 46502  IP: [192.*.*.*]

yTakeさんへ

まったく同じ事をされているサイトがありますので
そちらを参考に

studio-take
http://www3.netwave.or.jp/~take0/dt_Query.htm


こちらのペンネームとそちらのペンネームと
サイト名が似ているのは偶然です。

編集    削除
yTake  2014-07-29 18:25:34  No: 46503  IP: [192.*.*.*]

takeさん

大変参考になるサイトをご紹介頂きありがとうございます。


ここへ問い合わせる前、ネット上を当たってみたのですが、その時は見落としたのかもしれませんね。


takeさんと私のペンネームが似ているのは偶然ですけれど、紹介頂けたサイトの運営者はtakeさんではないのですね。
偶然が重なるものです。

編集    削除