- - PR -
Oracleに適したデータプロバイダは?
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-10-08 16:56
やってみました。ダメでした。考えました。 その前に、データアダプタ等をデザイナ上に置くのは、オブジェクト指向の考え方からはあまりお勧めできません。結果的に、とても使いづらくなります。
書かれているとおり、「OLEDBプロバイダ」のリストです。ODP.NETはOLEを介さずに接続するプロバイダなので、リスト上には現れません。その証拠に、SQL ServerのDataAdapterをおいてみてください。そんなリストは表示されません。つまり、別の扱いを受けているわけです。接続文字列を見てもわかります。OLE Data Providerは、「Provider=」という文字列が必須ですが、ODP.NETも.NET FDP for Oracleもいりません。 「DataAdapterを置いてデザイナ上で右クリック「データセットの作成」でできるのと、同じデータセットを作る」でいいですか? まず、「サーバエクスプローラ」で、データベースを開き、Microsoft OLEDB Data Provider for Oracleで、接続を1つ作ってください。 次に、ソリューションエクスプローラで右クリック、「追加→新しい項目の追加」で、「データセット」というのがあるので、これを作ります。.xsdというファイルと、そのデザイナが表示されます。 このデザイナ上に、先ほど作ったデータベース接続から、テーブルをドラッグドロップします。MS OLEDB Providerを選んだのは、Oracle Data Provider for OLEだとデータを引っ張って来られないからです。 テーブルを置いたら、いるもの、いらないものを選別し、必要に応じて外部キーも設定します。 データセットの設定ができたら、必ず保存します。「全てのファイルを表示」ボタンでXMLスキーマの裏にある.vbなり.csファイルを表示し、設定したテーブルのクラスができていることを確認してください。 最後に、ツールボックスの「データ」タブにあるDataSetを、フォームデザイナにドラッグアンドドロップします。「型指定されたデータセット」で、先ほど作成したデータセットを指定します。 ざっとですが、.NET FDP for Oracleで作ったDataSetと、この方法で作ったDataSetを、DataGrid.DataSourceに指定し、同じように設定できることを確認しました。 DataAdapterや、それに設定するDbConnection、DbCommandは別途コード中で作成しなければなりませんが、その方が結果的に扱いやすいと思います。 | ||||||||
|
投稿日時: 2003-10-08 18:38
なるほど、、そういう方法もあったのですね。ありがとうございます。
早速やってみようとしたところ、Microsoft OLE DB Provider for Oracle経由にて接続を作る際に、「データプロバイダの初期化に失敗しました。」というエラーが発生してデザイナ上で接続が作成できなくなってしまいました。(プログラムの実行は可能) 1.Oracle 8.1.6がインストールされている状態で VS.NET2003をインストール 2..NET FDP for Oracle経由でプログラム作成 3.先日 Oracle 9.2.0 Clientにアップグレードし ODP.NETをインストール という手順でインストールを行ったので、それがまずかったのかもしれませんね。 VS.NET 2003 を再インストールしてみます。 | ||||||||
|
投稿日時: 2003-10-10 08:45
無事、解決できました。
どうもありがとうございました。 | ||||||||
|
投稿日時: 2003-10-10 13:00
激遅レスですが、、、
> 私個人の意見としては文字コードの問題や、MSがサポートしているかという WAVE DASHがFULL WIDTH TILDEに化けないのは、Microsoft ODBC Driver for Oracle、または Microsoft OLE DB Provider for Oracleの場合だけで、Microsoft .NET Framework Data Provider for Oracleを使用する場合は同じ現象が発生します。 したがって、この点は選択の決め手にはならないでしょう。 私は、DataDirect Connect for .NET J1.1(http://www.datadirect.co.jp/products/dotnet/index.asp)を使用しています。 各クライアント端末に Oracle Clientを配付したくないのであれば、こういった選択肢もあります。J1.1ではWAVE DASH問題も起きていません。 ODP.NET R.9.2.0.4以降では、結合配列(PL/SQL索引付き表)のサポートが開始されます。 これまで Oracle Objects for OLEを使用してPL/SQL表を渡すようなストアド・プロシージャを使用していた場合は、もっとも移行しやすいように思います。 Oracle 10gからはクライアント・インストールの手間も軽減される方向に進んでいくようですので、将来的に考えると、ODP.NETが主流になっていくような気がします。 | ||||||||
