喫茶XRAYトップページ

[スレッド全体
]

[10556] Re6:Blobフィールドへの格納方法への質問返信 削除
2016/11/22 (火) 13:09:01 SO
▼ おかぽんさん
> ▼ SOさん
> > BlobStream.Free;
> > ADODataSet1.Post;
> > Postする前に解放してるけど???


私と同じボケをしている人がw

>
> 元ネタがどこなのかはわからないのですが・・・
> //TBlobStreamは必ずTable.Editよりも後でCreateしなければならず、
> //Table.Postの前までにFreeしなければならない。


ぃやぁ、CreateBlobStreamが戻り値がクラスポインタと妄想してみたら、
データ使う前に解放してるし...と思った。
オペレーターがコピーしてくれてるのかな?

 
> Mr.XRAY さんの記事もそのようになっていますし。
> 560_画像や RichEdit ワード文書をデータベースで読書き
> http://mrxray.on.coocan.jp/Delphi/plSamples/560_RichEditDB.htm#03


(^_^;)適当すぎてすみません。

きちんと元スレをみると、ポインタ宣言してないし...

[10558] Re7:Blobフィールドへの格納方法への質問返信 削除
2016/11/22 (火) 18:33:08 おかぽん
▼ SOさん
> > 元ネタがどこなのかはわからないのですが・・・
> > //TBlobStreamは必ずTable.Editよりも後でCreateしなければならず、
> > //Table.Postの前までにFreeしなければならない。

実はこれ、結構最近知ったんですよ。

BDE+oracleで長い間開発してきましたが、AnyDAC(現FireDAC)に乗り換えたときに、
ある1箇所で、同じようにTBlobStreamエラーが出るようになりました。
原因がわからなくて、他にTBlobStreamを使っているところと見比べると
TBlobStream.Freeの順番がpostの後にありました。
post前に移動すると、見事に動作しましたが、理由は不明のまま「動けばいいや」で。
そして、最近、なんとなくQAを読んでいて発見したという。

BDEだとpost後でも大丈夫だったんですが、こういう仕様はHelpにしっかり
記載してほしいと思う、今日この頃。

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