クラシックASPでOracleにファイル登録

ASP(非.net)でOracleにファイルを登録しようと調べたメモ。

バイナリを扱うモジュールが必要なので、
下記を参考にインストール。
http://www.hi-ho.ne.jp/babaq/basp21.html

OracleでばBLOB型のフィールドを用意。
拡張子がわからないと復元できないのでファイル名も一緒に格納すると良いかも)

ASPのソースは以下

<%
set bobj = Server.CreateObject("basp21")
bytes = Request.TotalBytes
' バイト数を指定してバイナリデータ読み出し
b = Request.BinaryRead(bytes)
' FormBinaryの第二引数にinput type="file"のnameを指定してデータ取得
obj = bobj.FormBinary(b, "file")
filename = bobj.FormFileName(b, "file)

Dim conn
set conn = Server.CreateObject("ADODB.Connection")
Call conn.Open("ODBC_NAME", "SCHEMA", "PASSWORD")

sql = "INSERT INTO TABLE VALUES(?, ?)"

' Commandを使う
set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandText = sql
' cmd.parametersでプレースホルダーに値を配置
cmd.Parameters(0).Value = filename
cmd.Parameters(1).Value = obj
' sql実行
cmd.Execute

set cmd = Nothing
conn.Close
set conn = Nothins
%>