- PR -

MSDEにimage型のデータを保存するには?

1
投稿者投稿内容
Bob
常連さん
会議室デビュー日: 2006/03/23
投稿数: 31
投稿日時: 2006-10-31 19:08
お世話になります。

今MSDEを利用して、ObjectそのものをDatabaseに保存したいと考えています。テーブルの列のデータ型を「ntext」にし、Objectそのものをstringに変更すれば、Insert/Selectが可能になるが、データサイズが大きく、Binary形式でデータを保存したい(どのくらいサイズが小さくなるかが分かりませんが)。
テーブルの列の型を「image」にして、Insert文を組むときに、如何すればよろしいでしょうか?そのままstringに変更するだけでは、保存できないようです。

やり方に問題があると思い、ご存知でしたら教えて頂きたい。

以上、宜しくお願い致します。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2006-10-31 19:45
MSDE imageで検索すると、MSDEEではどうもImage型をサポートしていることがわかる。

MSDE image型で検索すると、なんとなくそれっぽいものとして、
http://oshiete1.goo.ne.jp/kotaeru.php3?q=919583
がヒットしました。

このサイトで、「Visual C#.NETでADO.NETを使用したBLOBデータの読み取りと書き込みの方法」が参考になったとあるので、これをキーワードにして検索したら、
http://support.microsoft.com/default.aspx?scid=kb;ja;309158
にヒットしました。

開発環境がかかれていないので、参考になるかどうかはわからない。
Bob
常連さん
会議室デビュー日: 2006/03/23
投稿数: 31
投稿日時: 2006-11-01 12:32
引用:

開発環境がかかれていないので、参考になるかどうかはわからない。



失礼しました。開発環境は.Netで、言語はC#です。
教えて頂いた情報を参考に、問題が解決できました。自分なりの認識したポイントを下記にまとめます。
1.データを保存する際、ObjectをByte[]に変更する必要がある。
2.SQLコマンドを作る時、INSERT文に直接配列名を入れられないため、SQLCommandのParameterに設定する
3.保存・取り出し時、何れMemoryStreamを使用して、Byte[]<=>Object変換を行う。

ざっとやってみたら、Binary形式だと、データサイズは約半分になる感じです。

かずくん様、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)