ADO.NETの質問・雑談スレ2 (421レス)
1-

1: 2009/02/08(日)16:12 ID:??? AAS
ADO.NETに関する質問・雑談・評価 etc
何でもどうぞ。

前スレ
ADO.NETの質問・雑談スレ
2chスレ:db
402: 2020/01/26(日)02:26 ID:BP0mZu6W(1/5) AAS
バイナリ型のデータの取得で質問があります
データベースでアクセスでフィールド型OLE オブジェクト型があり
そこにバイナリデータがあります。
具体的にはEXCELのファイルのバイナリが登録されています(これは直接登録)
そこからADO.NETでそのバイナリを読み出し
クライアントにダウンロードして開けたいと思っています。
プログラム
・・・・・・前半省略
while (reader.Read())//アクセスからデータをバイナリデータを読み込む
{
省14
403: 2020/01/26(日)02:26 ID:BP0mZu6W(2/5) AAS
バイナリ型のデータの取得で質問があります
データベースでアクセスでフィールド型OLE オブジェクト型があり
そこにバイナリデータがあります。
具体的にはEXCELのファイルのバイナリが登録されています(これは直接登録)
そこからADO.NETでそのバイナリを読み出し
クライアントにダウンロードして開けたいと思っています。
プログラム
・・・・・・前半省略
while (reader.Read())//アクセスからデータをバイナリデータを読み込む
{
省14
404: 2020/01/26(日)13:40 ID:??? AAS
MIME登録されてないだけだろ
IISで設定しろ
405: 2020/01/26(日)18:02 ID:BP0mZu6W(3/5) AAS
そうなんですか?
IISの設定なんているのですか?
Response.ContentType = "application/msexcel";// MIMEコンテンツタイプを指定
ではだめなんですか?
406: 2020/01/26(日)18:30 ID:BP0mZu6W(4/5) AAS
しかし、ダウンロードはできるのです。
そのファイルが開けないのです。(サポートされていない形式ですのエラーメッセージ)
サーバにファイルがある場合は普通にダウンロードできて開けるのです
アクセス、SQLServerにバイナリデータとして登録されている場合が
開けないのです。
407: 2020/01/26(日)20:18 ID:8nfufEbl(1) AAS
・バイナリデータの格納
・バイナリデータの読み込み
・データをダウンロードさせる
・(クライアントが)ファイルを開く
のうち、どこまで成功してるんだ?

そもそも、そのデータは「ファイルの中身」なのか?
408: 2020/01/26(日)20:39 ID:BP0mZu6W(5/5) AAS
バイナリはあらかじめ格納できているのです
それをサーバー側からダウンロードしてアプリを自動的に立ち上げ
(要はWebから自動的にPDFを開ける)のと同じようにしたいのです
PDF,EXCEL,WORDなどがバイナリとしてアクセスまたはSQLServerでダウンロード
して中身を見たいのです
Server.MapPath(string.Format(@"./File/{0}", "Test.bmp"));
のようにあらかじめファイルをディレクトリにおいたときは
Respnse.writeBainaryでうまくいきます
問題はSQLServer アクセスにバイナリとして格納したときはできないのかな?と
やっぱり、ディレクトリの位置だけでDBの登録してServer.MapPath
省1
409: 2020/01/28(火)23:10 ID:??? AAS
OLEオブジェクト型はバイナリ型じゃないからな
OLEヘッダ付きで格納されてるから、OLEヘッダ落とす必要があったはず
410: 2020/02/03(月)12:35 ID:??? AAS
そうなんだ。ヘッダー落すのは先頭からバイトを削る事何ですか。わ
411: 2020/02/03(月)21:24 ID:??? AAS
409
確かにマイクロソフトのaspnetの分厚い本にコードの書き方書いてありましたね
少し試して見ます。thanks
412: 2020/02/03(月)22:04 ID:01WTNDQb(1) AAS
自分の使い方が間違っているだけなのに文句を言うなよ。
413
(3): [age] 2020/10/29(木)19:13 ID:??? AAS
質問すみません。

環境:
- OS: Windows 10 (バージョン 2004, ビルド 19041.572)
- Visual Studio: Visual Studio 2019 Community (Version 16.7.6)
- ターゲット Framework: .NET Framework 4.0/4.7.2
- Driver: Microsoft Access Driver (*.mdb, *.accdb) 16.00.4999.1000 (Access 2016 Redist)

コード概要:
デーモンとして待ち受け、要求に応じてDB(主に Access accdb データベース)のデータを返すプログラムです。

現象:
ADODB.Connection をインスタンス化した connection を Open するとき、実行開始後初回〜数回は正常に値を取得できますが、数分時間をおいた後、再度 connection を Open すると、AccessViolationException が発生します:
省17
414: 413 2020/10/29(木)19:35 ID:??? AAS
書き忘れました、データ量(レコード数)ですが、データは複数のテーブルに分かれており(特に JOIN などはしていません)、多いもので 3000件弱、少ないもので数十件です。
データ件数に関係なく発生します。
415
(1): 2020/10/29(木)21:15 ID:??? AAS
ACCESSは、というかOFFICE全般で、サーバサイドでの実行はサポートされない
ACE.OLEDBはサービスで動作させる設計にはなってないらしいぞ
416: 413 2020/10/30(金)19:40 ID:??? AAS
>>415
ありがとうございます。そもそもの使い方として想定されていなくて、せいぜい ASP.NET と組み合わせるのが関の山、といったところでしょうか。
SQLite の利用も検討します。

ちなみに、コードを精査したところ、読み出したいテーブルとは別のDB(別ファイル)にレコード追加をする時にコケているようです。
別DBへの接続を止めたらアクセス違反はなくなりました。
ただ、コード上は、それぞれ別の接続を使用していますし、デバッガでステップ実行する際も、コケない時とコケる時があるので、タイミングの問題なのかと考えています。
取り急ぎは、同じDBへの書き込みで回避できるか検討したいと思います。
417
(1): 2020/11/02(月)03:29 ID:??? AAS
いや、ASP.NETでの動作もサポートされてないから
418: 413 2020/11/03(火)18:11 ID:??? AAS
>>417
ありがとうございます。
サポート対象外とのこと、SQLiteなりSQL Server Express なりにDBを変えてみたいと思います。
本件クローズとします。
419: [age] 2020/12/13(日)21:51 ID:??? AAS
外部リンク:
youtube.com/watch?v=TTDVrOLz6MI
420: 2022/01/21(金)02:33 ID:??? AAS
小さな頃から優等生
421: 2023/02/02(木)13:02 ID:??? AAS
(  )y-~~ ( T)y-~~( T-)y-~~(T-T)y-~~
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.174s*