- - PR -
System.Data.OracleClientについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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を別途インストールした 経緯があります.少し気になります. 以上,どなたか教えてください.お願いします. | ||||
|
投稿日時: 2004-06-12 16:06
はじおさん、こんにちは。そして、はじめまして。
さて、.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-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を選択しても状況は変わらない. 以上です.よろしくおねがいします. | ||||
|
投稿日時: 2004-06-14 09:29
はじおさん、おはようございます。
以前、私も同じようにインストしたことがあって、似たような現象があった記憶があります。 さて、私はどうやって解決したかと申しますと、 新しくインストしたプロバイダーをアンインストしました。 なぜ、これで解決したかというと、名前空間が同じ為、どちらを読み込めばいいか判断できないからだそうです。 確か、Freamework1.1 だったら、標準で、「.NET Framework Data Provider for Oracle」がインストされています。 たぶん、配布用「.NET Framework Data Provider for Oracle」とバージョンが同じだったはず… これって、Freamework1.0の為の配布だったような… 違ったら、スマソです。 | ||||
|
投稿日時: 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