- - PR -
【VS.NET2003】DLLからODBC経由でOracleへ接続できない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-21 21:47
現在VS.NET2003 + C# + ORACLE7.3 + ODBC環境で、ODBC経由でDBへアクセスするプログラムを生成していますが、ODBC接続(Connectionのオープン時)に、以下のエラーが発生して困っています。 しかも、同じコードをEXEにしてコンソール上から動かすと正常にアクセスでき、DLLにしてaspxページから呼び出すとエラーになります。
ODBCドライバはMicrosoft ODBC for Oracle(2.575.1117.00)を使用しています。 エラー内容: Error while trying to retrieve text for error ORA-01019 ERROR [IM006] [Microsoft][ODBC Driver Manager] ドライバの SQLSetConnectAttr は失敗しました。 ERROR [01000] [Microsoft][ODBC Driver Manager] ドライバはアプリケーションが要求した ODBC の動作のバージョンはサポートしていません。SQLSetEnvAttr を参照してください。 コード: OdbcConnection connection; //OdbcConnectionオブジェクト string connectString; //接続文字列 connectString = "DSN=DataSource;Server=ORCL_DataSource;uid=user;pwd=pass"; connection = new OdbcConnection(connectString); connection.Open(); ↑ここで上記のエラーが発生している エラー内容から自分なりに調べてみたのですが解決できず、何よりEXEが動いてDLLでエラーになる理由がわかりません。同じDSNを使用してCSEからはアクセスできます。 どなたか原因と解決策を教えていただけないでしょうか。情報が足りないようでしたら追記もします。 よろしくお願いします。 [ メッセージ編集済み 編集者: オレンジ 編集日時 2006-09-21 23:35 ] | ||||
|
投稿日時: 2006-09-22 01:56
ORACLE_HOME への ASP.NET ユーザの権限問題は大丈夫ですか? WindowsForm では動くけれど、 ASP.NET では動かないのでは無いでしょうか | ||||
|
投稿日時: 2006-09-22 13:20
かるあさん、ご指摘いただきありがとうございます。 確認したところ、そもそもORACLE_HOMEという環境変数が存在しませんでした。なので、システム環境変数にORACLE_HOMEを追加し、設定したパスへASP.NETユーザ(ASP.NET Machine Account)の権限を追加しました。 そうしたところ、今度はEXE起動時にも同じエラーが発生してしまい、何がなんだかわからなくなってしまいました。 .NET開発は初心者なもので、何から調べればいいかもわからない状態です。何が原因なのか、どなたか教えて下さい。よろしくお願いします。 | ||||
|
投稿日時: 2006-09-22 14:40
このときのエラーの内容はどうなっていますか? ORACLE_HOME が無くても動くんですか。。。 ORACLE7 は触ったことがないのですが、 ORACLE_HOME の扱いが違うのかもしれませんね。 # レジストリに格納されている ORACLE_HOME の値も気になりますが、 # あまり触らないほうがいいかも。。。 | ||||
|
投稿日時: 2006-09-22 16:51
解決しました!
結論から言いますと、まず作成したORACLE_HOMEをシステム環境変数から削除し、再度EXE、DLL両方を動かしてみました。するとEXEは動きましたので、ORACLE_HOMEは必要ないのでは?と思いました。
PATHはOracleのディレクトリに通してあるので、それで見えているようです。 また、ASP.NETユーザにORACLE_HOME配下への権限を設定したと思っていたのですが、ORACLE_HOME直下のみに権限を設定していました。動かないのは当然ですね。。ORACLE_HOME配下全てに権限を与え、DLLを実行すると正常に動作しました。EXEも正常に動作しています。 とりあえず動いたのでORACLE_HOMEについてはもう少し調べてみようと思います。 かるあさん、ありがとうございました。 | ||||
|
投稿日時: 2006-09-22 19:12
ORACLE_HOME というのは確か、Oracle 8 か 8i で導入されたように記憶してます。 |
1