DOBON.NET DOBON.NETプログラミング掲示板過去ログ

【VB.NET】System.Byte[]をOleDbType.Binaryに格納するには?

環境/言語:[VB.NET(.NET Framework1.1)]
分類:[.NET]

はじめまして。現在、仕事でVB.NETを使っている者です。
今までDBを扱ったことは何度かありますが、今回、画像データを含んだDBの取り扱いで画像データを更新(UPDATE、INSERT)する方法が分かりません。
SQLは、パラメータ渡しで行っています。
現在のソースです。

DBCmd.Parameters.Add("ImageData", OleDbType.Binary).Value = dvItem.Table.Rows(0).Item(0)

dvItemはDataViewで更新元のデータが入っています。
更新元と更新先のサーバが異なるので、更新元を一度全て読み込み、それから更新先の更新処理を行っています。

分かりにくい文章ですいませんが、ご指導いただけたらと思います。
よろしくお願いします。
2005/01/22(Sat) 00:54:57 編集(投稿者)

‥‥どうやらマルチポストになっていたようなので削除。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18361&forum=7&2

#質問文は全く違うけど、内容、文体、書き込み時期がこれほど一致する他人の投稿というのは確率的にそうそうないだろうと。
#私の勘違いだとしたら申し訳ないので、対マルチ用の匿名投稿にはしませんが。
OdinMasさん、はじめまして。
> はじめまして。現在、仕事でVB.NETを使っている者です。
> 今までDBを扱ったことは何度かありますが、今回、画像データを含んだDBの取り扱いで画像データを更新(UPDATE、INSERT)する方法が分かりません。
> SQLは、パラメータ渡しで行っています。
> 現在のソースです。
>
> DBCmd.Parameters.Add("ImageData", OleDbType.Binary).Value = dvItem.Table.Rows(0).Item(0)
>
> dvItemはDataViewで更新元のデータが入っています。
> 更新元と更新先のサーバが異なるので、更新元を一度全て読み込み、それから更新先の更新処理を行っています。
>
> 分かりにくい文章ですいませんが、ご指導いただけたらと思います。
> よろしくお願いします。

率直な意見として、画像データをデータベースに格納させる方法はお勧めできません。
なぜなら、
・データベースサーバーの負荷がかかり過ぎる事
・データの登録、更新に時間がかかる事
・更新元と更新先のサーバが異なるのであれば、データの転送時間も考慮しないとけいない
他にもいろいろありますが、
基本的にリレーショナルデータベースはバイナリデータを効率的に保存するように設計されていません。

できれば、ファイルサーバーに画像を保存し、そのファイルのパスを文字列として格納させる方がよくないですか?
2005/01/22(Sat) 11:14:23 編集(投稿者)

// 修正 : 直リンだと見れないようなので「h」を省かせて頂きました。

じゃんぬねっと です。

■No8606に返信(ぺがらぼさんの記事)
> できれば、ファイルサーバーに画像を保存し、
> そのファイルのパスを文字列として格納させる方がよくないですか?

便乗ですが、私もぺがさんと同じ意見です。
鯖への負荷だけでなく、保守性も問題ありだと考えます。
テストの際も、効率がよくありません。

# こちらにも、似たような質問が... (^-^;) (時期は全然違いますけど)
# ttp://vbnet-iku2.hp.infoseek.co.jp/cgi-bin/treecrsdx03/index.cgi?m=look&bnum=74
じゃんぬねっとさん、こんにちは。

> // 修正 : 直リンだと見れないようなので「h」を省かせて頂きました。
>
> じゃんぬねっと です。
>
> ■No8606に返信(ぺがらぼさんの記事)
>>できれば、ファイルサーバーに画像を保存し、
>>そのファイルのパスを文字列として格納させる方がよくないですか?
>
> 便乗ですが、私もぺがさんと同じ意見です。
> 鯖への負荷だけでなく、保守性も問題ありだと考えます。
> テストの際も、効率がよくありません。
>
> # こちらにも、似たような質問が... (^-^;) (時期は全然違いますけど)
> # ttp://vbnet-iku2.hp.infoseek.co.jp/cgi-bin/treecrsdx03/index.cgi?m=look&bnum=74

そちらでも回答させていただきました。

DOBON.NET | プログラミング道 | プログラミング掲示板