今日、WIN2K SERVER サーバー上の ASP を介してこのマシンに Oracle9i データベースをインストールしたところ、エラーが発生し、データベースにまったく接続できませんでした。エラーの説明は次のとおりです:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] SQL_HANDLE_ENV でのドライバーの SQLAllocHandle が失敗しました
または
Microsoft OLE DB Provider for ODBC Drivers エラー '80004005'
システム エラー 5 (jxt_user の Oracle) のため、指定されたドライバーをロードできません。
このドライバーには、Oracle ODBC ドライバーと Microsoft ODBC Driver for Oracle が含まれています。
接続文字列は次のとおりです。
(1) 接続文字列 ="DSN=TXLTNS;UID=ユーザー;PWD=パスワード"
(2) CONNECTIONSTRING ="DRIVER={Oracle in txl_user};UID=user;PWD=password;DBQ=TXLTNS;DBA=W;"
このため、正常に動作できません。確認したところ、%ORACLE_HOME% の設定が正しく、PATH に含まれていることがわかりました。
GOOGLEで簡体字中国語の情報を検索すると、以下のような情報を見つけました。
「これは実際には、Oracle9i が 2000 の NTFS パーティションにインストールされていることが原因で発生したエラーです。主な理由は、IIS の権限が不十分で、Oracle9i ファイルが見つからないことです。」
また、彼は英語の要約も多数提供しました。ディレクトリ %ORACLE_HOME% をインストールするとき、権限は、デフォルトでは、Administrator グループ、SYSTEM グループ、および「Authenticated Users」という名前のグループに個別に設定されます。グループには権限があります。彼はこうも言いました。
------------------------------------------
v. 「名前」リストの「認証されたユーザー」項目をクリックします (Windows XP では、「名前」リストは「グループ名またはユーザー名」と呼ばれます)。
vi. 「アクセス許可」リストの「読み取りと実行」ボックスのチェックを外します (Windows XP では、「アクセス許可」リストは「認証されたユーザーのアクセス許可」と呼ばれます)。このボックスは「許可」列の下にあります。
vii. [読み取りと実行] ボックスをオンにします。これは、先ほどチェックを外したボックスです。
--------------------------------------
この英語は、というステートメントは少し奇妙ですが、なぜ Authenticated Users グループの「読み取りと実行」権限を取り消す必要があるのでしょうか?
引き続き ORACLE Technology Network で関連情報を検索し、次の情報を見つけます。
--------------------------------------------------
Oracle 用の Microsoft ODBC ドライバーは、9.2 Oracle クライアントでは正しく動作しないことが知られています。9.2 クライアントを使用している場合は、Oracle ODBC ドライバーを使用する必要があります。
- そう
みたいですこれは誤りです。ORACLE のインストール構成に関係なく発生します。 JAVA を使用して JDBC 経由で ORACLE に接続する前回のテストが成功したためです。
そこで、最新の MDAC2.8 をダウンロードし、インストール後にコンピュータを再起動し、元の ASP プログラムをテストしたところ、ORACLE データベースに正常に接続されたことがわかりました。
先ほど他の人が言及した「権限」の問題は、ここでは当てはまらないようです。ふふ。
添付:
MDAC2.8 のダウンロード アドレス: http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c