web-dev-qa-db-ja.com

OLEDB v / s ODBC

OLEDBとODBCの違いは何ですか? OLEDBドライバーv/s ODBCドライバー)をいつ、どのように使用すればよいですか?

21
Joseph

OLEDBとODBCは、2つの異なるデータベースAPIです。 ODBCは古い標準であり、実際にはWindowsに固有のものではありません。UnixベースのODBCライブラリを入手できます。 OLEDBは、データベース接続用のCOMベースのAPIです。

使用しているデータベースにネイティブOLEDBドライバーが付属していない場合は、ODBCをOLEDBフロントエンドでラップするためのドライバーがあります。 IIRC DB2/400およびSybaseOLEDBドライバー(たとえば)は、この方法を使用します。

WindowsのODBC管理者は、ODBCドライバーのみに関心があります。 ODBCとOLEDBはどちらも、わずかに異なる形式の接続文字列を使用できます。接続文字列からわかります- www.connectionstrings.com には、さまざまなデータベースドライバの接続文字列のサンプルがあります。

編集:オラクルには、曜日ごとのドライバーテクノロジーがあります。

  • Oracleには ネイティブOLEDBドライバー 「OLEDB用のOracleプロバイダー」などと呼ばれるものがあります。 ADO(OLEDB上にある非.Net)を使用している場合は、これが推奨されるドライバーになります。

  • また、 ODBCドライバー もあります。これは、(たとえば)OracleデータベースからMS-Accessに抽出したり、OLEDBをサポートしていないアプリケーションやシステムで抽出したりするのに役立ちます。たとえば、古いDelphi/OracleまたはPowerbuilder/Oracleアプリはおそらくこのドライバを使用します。

  • Oracleには、 [〜#〜] oci [〜#〜] と呼ばれるOracle固有のインターフェースもあります。これは、Cで記述している場合に最速のインターフェースであり、Windows以外のプラットフォームでも機能しますが、アプリケーションをOracleに関連付けます。 cx_Oracle for Pythonなどの動的言語バインディングは、OCIのラッパーになる傾向があります。

  • .Netを使用している場合は、OLEDB用の.Net提供を使用するのではなく、おそらく ODP.Net が必要です。これは、Oracleが提供する標準の.Netインタフェースライブラリです。

  • Oracleにはいくつかの JDBCドライバー があります。 OCIのラッパーであるタイプ2ドライバーと、Javaでネイティブに記述され、ネットワークを介してサーバーと直接通信するタイプ4ドライバーがあります。 Javaを使用している場合、タイプ2ドライバーが必要な特別な理由がない限り、ほとんどのアプリケーションにはタイプ4ドライバーがおそらく最適です(完全なOracleクライアントをインストールする必要はありません)。 。