• ベストアンサー

DB画像Image型→ローカル保存について

環境: vb.net 2008 express sqlserver2005 express DB odbc接続 DBに画像ファイルimage型で保存 ↓ DBの画像データをローカルに指定した拡張子で出力。 する機能をシステムに追加したいと考えています。 この際、参考になるサイトなどあれば ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

参考になるサイトは意外とないような気がするのですが、とりあえず最もベーシックな構造はこんな感じです。 (これ以外にも方法はありますが) なお、IMAGE型は古い型なので、varbinary(MAX)を使いましょう。 Using sqlConn As New SqlConnection("接続文字列")   sqlConn.Open()   Dim strSQL As String = "SELECT 画像データ FROM 画像テーブル WHERE SEQ=1"   Using sqlCmd As New SqlCommand(strSQL, sqlConn)     Using sdr As SqlDataReader = sqlCmd.ExecuteReader       Do While sdr.Read         Dim fs As New FileStream("C:\画像.jpg", FileMode.CreateNew)         Dim bw As New BinaryWriter(fs)         bw.Write(CType(sdr.Item(0), Byte()))         bw.Close()         fs.Close()       Loop     End Using   End Using   sqlConn.Close() End Using

-0-y
質問者

お礼

すばらしい!ありがとうございます。 ちなみにこの場合、すでにファイルが存在していた場合は 上書き保存になるんでしょうか。 ストリームだから、そうなのかな。早速この後試してみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

#1です。 上書きにならず、エラーになります。 あくまでバイナリハンドリングのサンプルなので、その辺は端折っています。VB側でハンドリングしてあげてください。

-0-y
質問者

お礼

なるほど、了解しました。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • AccessのデータをDBにODBC接続する方法

    Accessに溜まったデータをDBにODBC接続したいのですが、SQLiteかSQLserverにするか迷っています。私自身がDB初心者で、なんとなくこの2つが楽で安心して接続できるとWEBで見たため、この構成にしていますが、メリデメと言いますか、一言でいうとどう違うのか教えていただきたいです。メーカーが違うとか構成が違うのはざっくりとわかっています。 <やりたいこと> 会社のDB情報をCSVでエクスポートして、SQLiteなどDBにインポート。 DBからODBCを通してACCESSで出力。 ACCESSでデータを加工したら保存しDBにPushするイメージです。 WEBで調べてもどっちもいいということを言っていて、判断が付きません。 ちょっと急ぎで探しているため、回答を頂けたら幸いです。

  • VB6のイメージコントロールでURLの画像を表示

    VB6のイメージコントロール、またはピクチャーコントロールで URLの画像を表示したいです。 ローカルに一度保存してLoadPicture関数を使うことでできそう ですが、ローカルに保存せずに表示することは可能でしょうか?

  • DataTableにデータを用意した後DBに反映する方法

    VB2008 SQLServer2008で開発しています。 DBにデータを追加したいと思っています。 DataTableを作成しているので これを使って簡単にDBにデータを追加することは できないでしょうか? そのやり方の場合 insert文を1行ずつ実行するのと処理時間に差はあるのでしょうか?

  • ASPでデータベースに画像を保存

    ASP+SQLServer7.0でデータベースに画像を保存し、それを呼び出して表示できるようにしたいのですが 具体的にどうすればいいのかが分かりません。 フォルダに画像を保存することは出来ています。 image型にバイナリデータを保存するのではないかと何となく考えてはいるのですが良く分かりません。 よろしくお願いします。

  • 画像の保存方法

    HPビルダーを購入し、ローカルサイトその中にイメージフォルダを作成し、背景を一応雛形から決めたのですが、どうしても使いたい画像があってお借りしようとしたのですが、そこでの説明が「タグをコピーして入れたいところに貼り付けて下さい」とのことでした。一応コピーしてきたのはいいのですが・・どこに貼り付けるのかわかりません。メモ帳に貼り付けて名前をつけて保存にしても、txtからgifに拡張子を変更することもできず、どこにどうやってこれを画像として見えるものとして保存できるのかがわかりません。タグは全くわからないの初心者にわかるように教えて頂けないでしょうか??お願いします。

  • ODBCで接続するとDBに変更/追加出来ない。

    SQLServerのフロントエンドとしてACCESSを使用しDBを参照しています。 SQLServerには、5つのテーブルを用意しています。 1つのテーブルは変更も追加も出来るのですが他のテーブルが参照のみとなってしまって困っています。 何が問題なのか、ご存知の方教えて頂けますでしょうか。 環境 SQLServer2005Express Access2002 よろしくお願いします。

  • メールで添付されてくる画像の自動保存ってできないのですか?

    Outlook Expressを利用していますが、仕事関係の添付画像が数多く入ってきます。 その都度保存しているのですが忘れてしまうこともあり、自動的に指定フォルダに保存して後で振り分けるなどできないものでしょうか? 画像ソフトなどを利用して拡張子をjpg.などに統一させ保存するなどのより高度な(便利な)ものがあるようならその辺もあわせて教えていただけると助かります。

  • 画像を素早く保存するには

    IEで画像を保存する際 『右クリック→画像を保存→保存先を選択して保存』 といった一連動作を行いますが、これをもっと簡略化できないでしょうか? 私が望む機能ですが、例えば 1:画像上で右クリックするだけで事前に指定したフォルダに保存される 2:キーボードに上記の機能を割りふる などのように1動作、または2動作で行えることは出来ませんでしょうか? そのようなソフトウェア、または方法をご存知でしたら教えてください。 また、firefoxのsave Image in Folderを利用したのですがイマイチ使い勝手が悪くダメでした。 最後に、これはソフトウェアに関係がないのですがダイアログで画像を保存する際に、【保存(s)】とありますが、 この(s)のショートカットキーがうまく動作しません。 こちらの方法もご存知の方、いらっしゃいましたらヨロシクお願いします。

  • (local)とlocalhostの違い

    Sql Serverを構築し、それに接続するODBCを登録しようとするとエラーになってしまいました。 Manegement Studioで接続できるのは確認済みです。 (環境) OS:Windows Server 2003 DB:Sql Server Express 2010 ODBC:  システムDSN  サーバー:(local)  Windows認証 (エラーメッセージ) 接続できませんでした。: SQLState: '01000' SQL Server エラー: 14 [Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (Invalid Instance()), 接続できませんでした。: SQLState: '08001' SQL Server エラー: 14 [Microsoft][ODBC SQL Server Driver][Shared Memory]接続が正しくありません。 色々調べてODBCの設定を下記のように変更したところつながりました。 (1)サーバー:localhost (2)クライアントの設定-"ポートを動的に決定する"のチェックをオフ。ポート番号:1433 (2)が無くても設定はできるのですが、無いと最後の接続テストでエラーになってしまいました。 「(local) = localhost」だとずっと思っていたのですが、挙動が異なるので「(local)」はちょっと違う意味合いがあるのでしょうか?

  • DBからPHP出力された画像の情報取得について

    Linux、PHP4.3.11、MySQLの環境でPHPスクリプトの作成を試行しています。 MySQLの BLOB型 に格納された画像バイナリを呼び出してそのまま出力するスクリプトを作成し、同スクリプトから出力された画像ファイルのサイズや種別情報を「getimagesize()」で取得しようとしているのですがうまく行きません。 画像出力の処理は、MySQLからバイナリのデータを読み出して HTTP HEADER をつけてそのまま出力する処理を行っています。 // 画像出力処理 <?php $image = /* DBからバイナリを取得する処理 */ header("Content-type: image/jpeg\n\n"); echo $image; exit(); ?> 上のスクリプトをWEBブラウザで呼び出すと画像を表示する事ができます。 また、<img src="画像出力スクリプトのURL">としてHTML中に記述しても画像を表示できます。 しかし、getimagesize() で画像情報を取得しようとしても False となり、画像の構成情報を取得できません。 // 画像情報取得処理 <?php $src = "http://画像出力スクリプトのURL"; var_dump(getimagesize($src)); exit(); ?> $src にローカルにある実ファイル画像を指定した場合( "./hoge.jpeg" )や 他のWEBサーバ上にある画像ファイルを指定した場合( "http://よそのサーバURL/hoge.jpeg" )等は画像情報をちゃんと取得できます。 画像出力用のスクリプトで行わなければならない処理が何か不足しているのでしょうか。 原因となりそうな物が分かる方がいらっしゃいましたらご教示お願いいたします。

    • ベストアンサー
    • PHP
Brather DPC-J562Nの廃液処理の件
このQ&Aのポイント
  • Brather DPC-J562Nの廃液処理についての問題
  • 製造終了品であるDPC-J562Nの廃液処理の自主責任下の処理工程が不明
  • ウィンドウズ10を使用し、無線LAN接続している環境での問題
回答を見る