トップ回答者
windows8 ClassicASPのAccess Ole接続

質問
-
windows8(無印エディション) IISにClassicASPはdefaultではないので これをInstallして下記を実行したのですが 以下のようになってOLE接続ができません。
<%@ Language="VBScript" %>
<%
On Error Resume Next
Dim db
Set db = Server.CreateObject("ADODB.Connection")
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=C:\SampleDB.mdb"
db.Open
If (Err.Number <> 0) Then
response.write Err.Number
response.write Err.Description&"<br>"
response.write db.ConnectionString
else
response.write "OK"
end if
response.end
%>上記の実行結果(Errメッセージ)
3706プロバイダーが見つかりません。正しくインストールされていない可能性があります。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SampleDB.mdbACCESSは ACCESS2010 を使っています。
IIS ASPのInstall以外に何か他に設定が必要なのでしょうか 教示願います。
回答
-
Windows 8及びIIS / Classic ASPは64bitで動作しているのではないでしょうか?
Jet データベース エンジンを使用するアプリケーションの開発/動作環境にも書かれていますが、"Microsoft.Jet.OLEDB.4.0"というドライバは64bit版が提供されていません。単純にはClassic ASPを32bitモードで動作させることになります。ただし、
Access ODBC ドライバや Jet エンジンはスレッドセーフではなく、マルチスレッド環境での利用を前提に設計されていません。例えば IIS などのマルチスレッド処理が行われる環境で Jet エンジンを使用すると予期しない動作が起こる可能性があります。そのため、マルチスレッド アプリケーションとして Jet 4.0 エンジンを利用することを推奨しておりません。
とあるようにIIS上ではマルチスレッド動作をするため、Jetドライバの使用は推奨されていません。
先のページでも触れられていますが、JetドライバはAccess 2007からAceドライバという新しいものに置き換わっています。ただし、こちら更に厳しくIIS上での動作がサポート外となっています。
すべての返信
-
Windows 8及びIIS / Classic ASPは64bitで動作しているのではないでしょうか?
Jet データベース エンジンを使用するアプリケーションの開発/動作環境にも書かれていますが、"Microsoft.Jet.OLEDB.4.0"というドライバは64bit版が提供されていません。単純にはClassic ASPを32bitモードで動作させることになります。ただし、
Access ODBC ドライバや Jet エンジンはスレッドセーフではなく、マルチスレッド環境での利用を前提に設計されていません。例えば IIS などのマルチスレッド処理が行われる環境で Jet エンジンを使用すると予期しない動作が起こる可能性があります。そのため、マルチスレッド アプリケーションとして Jet 4.0 エンジンを利用することを推奨しておりません。
とあるようにIIS上ではマルチスレッド動作をするため、Jetドライバの使用は推奨されていません。
先のページでも触れられていますが、JetドライバはAccess 2007からAceドライバという新しいものに置き換わっています。ただし、こちら更に厳しくIIS上での動作がサポート外となっています。
-