- PR -

System.Data.OracleClientについて

1
投稿者投稿内容
はじお
会議室デビュー日: 2004/03/02
投稿数: 8
投稿日時: 2004-06-12 14:51
御世話になります.
サーバ:IIS6.0,.netフレームワークのバージョン1.1
asp.netでSystem.Data.Oracleを使用したいのですが,
エラーが出ます.

1) 参照でSystem.Data.Oracleを登録
2) コードの先頭に<%@Import Namespace="System.Data.OracleClient"%>

3) コードの最初にOracle.Clientを使う下記の行でエラー発生

 Dim MyConnection As OracleConnection

エラー:BC30002: 型 'OracleConnection' が定義されていません。

コンパイラエラーの詳細を見ると

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\
Temporary ASP.NET Files\ihdbx\3d37f98b\53218232\i5z8jm2y.0.vb(21)
: error BC30466: インポート 'System.Data.OracleClient' の
名前空間または型 'OracleClient' が見つかりません。

と表示されます.

System.Data.OracleClientがうまいことインストールされていないのでしょうか?
または,権限等の問題でしょうか?
なお,oleDDBで接続する場合は,問題なく使用できています.
たぶん,Oracle側の問題ではないと思われます.

なお,フレームワークのバージョンは1.1ですが,誤って,
.NET Framework Data Provider for Oracleを別途インストールした
経緯があります.少し気になります.

以上,どなたか教えてください.お願いします.
ポポロン
常連さん
会議室デビュー日: 2003/05/30
投稿数: 26
投稿日時: 2004-06-12 16:06
はじおさん、こんにちは。そして、はじめまして。
引用:

なお,フレームワークのバージョンは1.1ですが,誤って,
.NET Framework Data Provider for Oracleを別途インストールした
経緯があります.少し気になります.


さて、.NET Framework Data Provider for Oracleを別途インストールしたとありますが、
これはマイクロソフト社製のものでしょうか?
もしかしたら、ODP(Oracle Data Provider)をインストしたのではありませんか?
これは、Oracle9i以降で使用するオラクル社製のプロバイダーで、
Oracle8i以前では使用できません。
もし、DBサーバーがOracle9i以降でODPをインストしているなら、
「Oracle Data Provider for .NET」を参照設定し、
Importsは「ORACLE.DataAccess.Client」と記述してください。
もう少し詳細がわからないと解決方法が見つかりませんので、
環境やインスト状況などを教えてください。
はじお
会議室デビュー日: 2004/03/02
投稿数: 8
投稿日時: 2004-06-12 22:36
早速の回答ありがとうございます.環境等,説明させていただきます.

まず,利用するミドルは,Oracle製のOracle Data Provider for .NET (ODP.NET) ではなく,Microsoft製の.NET Framework Data Provider for Oracleです.
(別環境ではODP.netを利用したことがあるので,違いは解ります).

サーバ環境は,
Windows2003 Server Standard Edition
IIS6.0をインストール済み,ADO.net(MSDAORA)を利用したasp.netのHPを運用.
一応,.net環境は正常だと認識しています.
Visual Studio .net 2003からフレームワークとデバッガのみインストール.
Oracle Client 9.0インストール済み.SQLPlusからもADO.net(MSDAORA)からも利用できている.データベースサーバは別マシン(7.3または9.2).
(レガシのOracle7.3サーバもできれば利用したいので,Oracle製ODPは使用できない)

フレームワークのバージョンが1.1にも関わらず,誤ってMicrosoft製の
.NET Framework Data Provider for Oracleをインストールしたことがある.
参照の追加画面では2種類のSystem.Data.OracleClientが表示され,
別ディレクトリにインストールされている模様.
どちらのSystem.Data.OracleClientを選択しても状況は変わらない.

以上です.よろしくおねがいします.
ポポロン
常連さん
会議室デビュー日: 2003/05/30
投稿数: 26
投稿日時: 2004-06-14 09:29
はじおさん、おはようございます。
以前、私も同じようにインストしたことがあって、似たような現象があった記憶があります。
さて、私はどうやって解決したかと申しますと、
新しくインストしたプロバイダーをアンインストしました。
なぜ、これで解決したかというと、名前空間が同じ為、どちらを読み込めばいいか判断できないからだそうです。
確か、Freamework1.1 だったら、標準で、「.NET Framework Data Provider for Oracle」がインストされています。
たぶん、配布用「.NET Framework Data Provider for Oracle」とバージョンが同じだったはず…
これって、Freamework1.0の為の配布だったような…
違ったら、スマソです。
はじお
会議室デビュー日: 2004/03/02
投稿数: 8
投稿日時: 2004-06-14 14:02
早速の回答ありがとうございます.
結果的には,なんとか実行できました.

@ServerのMS版「.NET Framework Data Provider for Oracle」を
 アンインストール.レジストリ,ファイルより削除済みを確認.

Aしかし,クライアント側からページを開いたところ,以前と同じエラー.

Bクライアント側のVS.netより参照を確認したところ,まだ,2つの
 System.Data.OracleClient(1.0.3300.0と1.0.5000.0)が存在.

Cクライアント側のMS版「.NET Framework Data Provider for Oracle」を
 アンインストール.1.0.3300.0のSystem.Data.Oracleが削除された.

Dしかし,クライアント側からページを開いたところ,以前と同じエラー.

Eクライアントのvs.netの参照で,System.Data.OracleClientの
 ローカルコピーをTrueにした.

Fやっと参照エラーが消えて,実行できました.
 しかし,ローカルコピーをFalse(デフォルト)にすると,参照エラー発生.

とりあえず,ローカルコピーをTrueでしばらく使用してみます.
いずれ,本稼働直前にすべてをインストールし直すので,そのとき,
もう一度状況を確認しようと思います.
(IIS6とasp.netの環境は,これが初めてなので,おもちゃ箱状態です)

なお,上記の結果から,vs.netの参照に表示されるコンポーネントは
サーバのではなく,クライアントのが表示されるようですね.
WindowsForm開発としては至極当然ですが,asp.netの場合は,
少し不便な状況かもしれません(設定の問題も考えられますが).
通常は開発マシンとサーバーの環境はある程度合わせておくので
問題はなさそうですが,ときとして混乱しそうです.

また,ローカルコピーの件も何か解決方法がありそうですね.

以上,ありがとうございました.

(うまくアップされなかったので再送.ダブってたらごめんなさい)
1

スキルアップ/キャリアアップ(JOB@IT)