- ベストアンサー
【ACCESS】 バイナリデータの確認方法
ACCESSの通常のテーブルビューにて(ロング)バイナリデータ型のカラムを含むテーブルを表示した場合、当該カラムのセルに「バイナリデータ」と何故か型名が表示されて肝心のデータ内容が表示されません。 ACCESSにおいてバイナリデータのダンプ(01010101011 とか 0x1263fd325 とか、そんな感じのもの)を表示する方法があれば教えてください。 ※ ちなみにSQL Serverにおいても同様の事象が発生します DBMSが自分で管理しているデータの内容を表示できないというのはおかしな話なので、何かしら方法があるとは思うのですが・・・。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBA使うにしても http://homepage1.nifty.com/MADIA/vb/vb_bbs/200412/200412_04120071.html http://q.hatena.ne.jp/1164638485 http://www.moug.net/tech/acvba/0080031.htm かなりめんどいです。 一般的にDBでBLOB(バイナリーラージオブジェクト)は通常の文字列型などと違い、プログラムで ある一定単位のブロック(Chunk)単位にアクセスしますからしょうがないのかもしれません。
その他の回答 (1)
- nda23
- ベストアンサー率54% (777/1415)
OLEオブジェクト型は何でもあり、利用者任意の入れ物 です。どんなモノを入れるかは利用者次第です。 画像、音楽、あるいはExcelシートとか・・・ 当然ですが、再現するためのソフトも違います。 拡張子毎にアプリケーションが決まっているように、 内部管理項目で、アプリケーションが特定できる場合は その名前が表示されますが、未定の場合に「ロング バイナリーデータ」になります。例えばAdobeReadeが 無い環境でのPDFとか考えられます。つまり、場所を 提供しているだけで「管理」していません。 >自分で管理しているデータの内容を表示できないというのはおかしな話 上記の理由で、おかしくありません。DBは共有できる ので、アプリケーションをインストールしているPCから データを登録し、アプリケーションの無いPCから見る こともあるからです。どんなオブジェクトを入れるかは 利用者の責任で、アプリケーションに何を使うかも 利用者の自由です。
お礼
ありがとうございます。 私が聞きたいのは、OLEとかアプリケーションレベルの話ではなく、現実にDBが格納しているデータ(バイナリ)の実体を確認する手段についてです。 フォーマットは管理していなくともデータ自体はACCESSの管理下にある訳で、その内容を隠匿?したまま「バイナリデータ」とか言われても納得できません。 やはりVBA等で実装するしかないのでしょうか? クエリでHEX()に突っ込むとか、簡単に確認できるやり方があれば教えて頂きたいのですが・・・。
お礼
ありがとうございます。 現状、VBAでバイト配列にフィールドの読込自体はできるようになっています。 (OLEとかそういうのは関係なく、文字通りのバイナリデータです。) ただこれを見るためだけに態々VBAで16進表記なりに編集して・・・というのが面倒なので、 バイナリデータならバイナリデータらしくACCESSの機能で簡単に内容を確認する手段は提供されていないのか?と思い質問させていただいた次第です。 (数値型や文字列型の場合は、ちゃんとデータ内容が表示されるのに、バイナリデータの場合だけ「バイナリーデータ」 となっているのが不自然に思えたので) 私のケースとは違うようですが、場合によってはそんなに面倒なのですね。勉強になります。