喫茶XRAYトップページ
[
スレッド全体
]
[10531]
Blobフィールドへの格納方法への質問
返信
削除
2016/11/19 (土) 16:56:00
Mr.XRAY
[Blobフィールドへの格納方法への質問]
http://
www.
freeml.
com/
delphi-
users/
4577/
latest
コードを見る限りエラーが発生するような要因はないようなんですが.
昨日今日の方ではないので
「エラーの内容を書いた方がいいのではないでしようか ?」
とは言いにくいですね.
かなり昔,コードのインデントがない方がいい,という内容をどこかのサイト
で読んだ記憶がありますが,
Delphi を使っている方で本当にいるとは思いませんでした.
私自身は読みにくいと思っていますけど.
えっ ? 違う ? 何が (笑)
[10533]
Re:Blobフィールドへの格納方法への質問
返信
削除
2016/11/19 (土) 17:32:29
igy
▼ Mr.XRAYさん
> [Blobフィールドへの格納方法への質問]
>
http://
www.
freeml.
com/
delphi-
users/
4577/
latest
>
> コードを見る限りエラーが発生するような要因はないようなんですが.
あのコードで、シングルクォーテーションが2つ並んでいるのは、気になりますね。
[10536]
Re2:Blobフィールドへの格納方法への質問
返信
削除
2016/11/19 (土) 17:38:25
SO
▼ igyさん
> あのコードで、シングルクォーテーションが2つ並んでいるのは、気になりますね。
バックコーテーションの間違いですかね?
create table hogehoge
(
`レコード番号` int,
`レコード区分` char(2),
`受付番号` char(8)
)
[10537]
Re3:Blobフィールドへの格納方法への質問
返信
削除
2016/11/19 (土) 17:45:37
Mr.XRAY
▼ SOさん
> バックコーテーションの間違いですかね?
だとすると,というより,
実際データを SELECT して TDBGrid 等に表示できるか確認する必要が...
そんなことやっているでしょうね.
いや,もしかしたら... ハハハッ
どうして POST できないのか興味あるんですが,
例によって,怖くてレスできません !!
やっぱりここはエスパーの登場を期待することにします.
[10538]
Re4:Blobフィールドへの格納方法への質問
返信
削除
2016/11/19 (土) 18:00:52
SO
▼ Mr.XRAYさん
Delphi手元にないので、私も妄想で書いてますが、
「function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; virtual;」
って、ポインタを返すわけではないですよね?
BlobStream.Free;
ADODataSet1.Post;
Postする前に解放してるけど???
[10554]
Re5:Blobフィールドへの格納方法への質問
返信
削除
2016/11/22 (火) 08:33:37
おかぽん
▼ SOさん
> BlobStream.Free;
> ADODataSet1.Post;
> Postする前に解放してるけど???
元ネタがどこなのかはわからないのですが・・・
//TBlobStreamは必ずTable.Editよりも後でCreateしなければならず、
//Table.Postの前までにFreeしなければならない。
以下からの転載
Q: データベーステーブルのGraphicフィールドにビットマップを保存するには どのようにすれば良いのでしょうか?
http://
delfusa.
main.
jp/
delfusaf
loor/
archive/
www.
nifty.
ne.
jp_forum
_fdelphi
/
faq/
00107.
htm
Mr.XRAY さんの記事もそのようになっていますし。
560_画像や RichEdit ワード文書をデータベースで読書き
http://
mrxray.
on.
coocan.
jp/
Delphi/
plSample
s/
560_Rich
EditDB.
htm#
03
CopyFrom じゃなく SaveToStream を使うのがミソだったりして。。。
[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/
plSample
s/
560_Rich
EditDB.
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