出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

Accessデータベースでのバイナリデータの作成について   HELPUPさん [2002/06/05 11:16:45] [2133]
  Re:Accessデータベースでのバイナリデータの作成について   くっくさん [2002/06/05 19:36:21] [2134]
    Re:Accessデータベースでのバイナリデータの作成について   北岳さん [2002/06/06 10:05:25] [2135]
      Accessファイルサイズ上限   北岳さん [2002/06/06 20:03:07] [2137]
      難しいですね・・・   HELPUPさん [2002/06/07 11:42:21] [2138]
        Re:難しいですね・・・   HELPUPさん [2002/06/07 13:21:40] [2139]

[2133] Accessデータベースでのバイナリデータの作成について
投稿者:HELPUPさん 2002/06/05 11:16:45
こんにちは

過去ログなど参照してDBからの画像データをよびこむASP
を作成したのですが、
OLEオブジェクト型のフィールドにたいして.gifを挿入
したのですが、
”パッケージ”とか表示されて
意図する形式にデータがセットされてくれません。

どのようにしたらバイナリデータとして認識してくれるのか
教えて下さい。

よろしくお願いします。

[2134] Re:Accessデータベースでのバイナリデータの作成について
投稿者:くっくさん 2002/06/05 19:36:21

> 過去ログなど参照してDBからの画像データをよびこむASP
> を作成したのですが、
> OLEオブジェクト型のフィールドにたいして.gifを挿入
> したのですが、
> ”パッケージ”とか表示されて
> 意図する形式にデータがセットされてくれません。
>
> どのようにしたらバイナリデータとして認識してくれるのか
> 教えて下さい。

すでにバイナリデータとして認識されていると思いますが・・・。
おそらくAppendChunkなどを使って登録されていると思います。
その場合は、OLEオブジェクト型フィールドはBLOBとなります。
BLOBとして登録されたのはパッケージとかロングバイナリとか表示されると思います。
OLEオブジェクトとして取り込まれたものはOLEオブジェクトと表示されますが、
Webで使う場合を考えると、汎用性が乏しいと思います。

バイナリ-データとして登録されたのは、バイナリデータとして取り出さなければ
見ることは出来なかったと思います。

[2135] Re:Accessデータベースでのバイナリデータの作成について
投稿者:北岳さん 2002/06/06 10:05:25
【1】ActiveX-DLL
>バイナリ-データとして登録されたのは、バイナリデータとして取り出さなければ
>見ることは出来なかったと思います。
の具体的方法が下記URLにありました。
 
ACCESS の OLEオブジェクト型フィールドから ASP へ の画像書出しは、サーバ側の ActiveX DLL を作成すれば、可能です。
98の PWS で確認しましたが、ブラウザに、NorthWind.mdb の長髪のおねえさん(むしろ、おばさん?)の顔写真が現れました。
 
http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp%3Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fjp175%2F2%2F61%2Easp&LN=JA
 
【2】ACCESS-VBA
ACCESS は1つのテーブル(1つのDB?)へのデータ格納量が2GB(4GB?)までなので(・・・いいかげん)、すぐパンクする恐れがあるため、私は画像はフォルダにファイルで格納して、DBにはパス名しか入れていません。
 
なのでこのスレッドは自分に無関係、と思いつつも、自分が仮にフィールドに画像を埋めるなら、ASPからの埋め込みもASPへの取り出しも、ACCESSのモジュールでやってしまうでしょうね。
(ACCESSからクリップボードに画像を送り込んでから、Doodle2でASPに書き込むのかな。)
サーバにオフィスの一員を立ち上げるという重大な難点はありますが、立ち上がっているのは短時間だし、この方が実現は早そう。
 
【3】Doodle2
上の【1】がオーソドックスでしょうが、自前DLL のデバッグは、IISの再起動では済まず、サーバのリブートになり面倒。
既に組み込んであるCOMを使うなら、デバッグはASPだけ。
なので、DOODLE2
http://www.vector.co.jp/soft/winnt/prog/se219120.html
でできないか試しました。
ちょっとやっただけですが、 

Set dd = CreateObject("Doodle2.MyCanvas")
ee=dd.LoadFromFile(RS("写真"))
Response.BinaryWrite ee
 
ではうまくいきませんでした。
フィールド内の画像に、Doodle2が要求する拡張子付きの名前が与えられていないため、と推定。

[2137] Accessファイルサイズ上限
投稿者:北岳さん 2002/06/06 20:03:07
> ACCESS は1つのテーブル(1つのDB?)へのデータ格納量が2GB(4GB?)までなので
 
●ACCESS97
どちらも1GBまででした。
「ヘルプ」−「トピックの検索」−「キーワード」−「Accessの定義」から、
 
---(抜粋)-----
属性 最大値
 
■データベース (.mdb) ファイルのサイズ 1GB。
ただし、データベースには他のファイルとリンクしたテーブルが含まれるので、データベース全体の大きさはディスクの空き容量でのみ制限されます。
■データベースを同時に使用できるユーザーの数 255
 
■テーブルのフィールド数 255
■同時に開くことができるテーブル数 1,024。
■テーブル サイズ 1GB
■テキスト型フィールドの文字数 半角 255 文字 (全角 127 文字)
■メモ型フィールドの文字数
ユーザー インターフェイスからデータを入力する場合は半角 65,535 文字 (全角 32,767 文字)。
プログラムによるデータ入力の場合は 1 GB。
■OLE オブジェクト型フィールドのサイズ 1GB
■1 レコードに格納できる文字数 (メモおよび OLE オブジェクト型フィールドを除く)
半角 2,000 文字 (全角 1,000 文字)
 
●ACCESS2000
http://hp.vector.co.jp/authors/VA014071/tips/spec_ac.html
より、
 
---(抜粋)-----
■mdbファイルのサイズ 2 GB。
■テーブルサイズ 1 GB 。
 
はて、今現在、他とリンクしてない、ファイルサイズ3GBやや超過のmdb2本が、97版のMSACCESS.exeからも開けるんですけど。
また、MSACCESS.exeを立ち上げずにASPからOLEDB経由で呼んだ場合が書いてませんが(どこかにあるかも)、上の制限はそのままなんでしょうか。−実際はASPからも上の3GBのmdbが開けるんですけど。
 
少なくとも前者は、看板に偽りあり!⇒MS!
(MS影の声:看板より中身が多いのに、文句つけられても・・・)

[2138] 難しいですね・・・
投稿者:HELPUPさん 2002/06/07 11:42:21
こんにちは。

北岳さん、くっくさん ご丁寧に教えていただき
ありがとうございました。

とりあえず下記URLを参考に作成してみましたが
画像は表示されませんでした。

http://www.microsoft.com/JAPAN/support/kb/articles/J041/0/56.asp

*****< s_gazou.asp >***************************************
<%@Language="VBScript" %>
<%
Response.Expires=0
Response.Buffer=TRUE
Response.Clear

Response.ContentType="Image/gif"
Set rs=Server.CreateObject("ADODB.Recordset")
Set db=Server.CreateObject("ADODB.Connection")
db.Provider="Microsoft.Jet.OLEDB.4.0"
db.Mode=1
db.ConnectionString="d:\社員検索システム.mdb"
db.Open

SQL="SELECT * FROM T_社員マスター" & _
" WHERE 社員番号='" & ("GAZOU_KEY") & "'"

Set rs=db.Execute(SQL)

Response.BinaryWrite rs("画像データ")
Response.End
%>
*****< s_search.asp >**************************************
<%@Language="VBScript" %>
<%
If Request.Form="" Then
%>
<HTML>
<HEAD>
<TITLE>社員検索システム</TITLE>
</HEAD>
<BODY>
<form method="POST" action="s_search.asp">
<tr>
<td align="right">社員番号:</td>
<TD><input type="text" name="SBAN" / ></TD>
<TD><input type="submit" value="検索" /></TD>
</tr>
</form>
<%
Else
set rs=Server.CreateObject("ADODB.Recordset")
set db=Server.CreateObject("ADODB.Connection")
db.Provider="Microsoft.Jet.OLEDB.4.0"
db.Mode=1
db.ConnectionString="d:\社員検索システム.mdb"
db.Open
SQL="SELECT * FROM T_社員マスター" & _
" WHERE 社員番号='" & Request.Form("SBAN") & "'"

rs.Open SQL,db,3,3
%>
<% Do While Not rs.EOF %>
<td><%=rs("社員番号") %></td>
<%
Session.Contents("G_KEY")=rs("社員番号")
%>
<td><IMG src="s_gazou.asp"></td>
<%
rs.MoveNext
Loop
End If
%>
</body>
</html>
***********************************************************

以上の様に北岳さんが指摘されたとおり、
自分的には?バイナリデータとして取り出したつもりなのですが・・・

現在は、上記ASPを保留にして紹介していただいた
DOODLE2を使用してみようと解析中なのですが・・・
(悪戦苦闘であります)




[2139] Re:難しいですね・・・
投稿者:HELPUPさん 2002/06/07 13:21:40
すいません。

訂正です。

記載したs_gazou.aspのSQL文で
("GAZOU_KEY") は("G_KEY")の誤りです。

ごめんなさい。



TreeBBS For ASP V.0.1.3
Program By YasNet