「Open Database Connectivity」の版間の差分

削除された内容 追加された内容
m編集の要約なし
m編集の要約なし
10行目:
その後、ODBC3.0では、[[X/Open]][[コンソーシアム]]と[[国際標準化機構|ISO]]で進められていた標準化にあわせることとなり、これは1995年に「[[Call Level Interface|SQL/CLI]]」として[[SQL]]標準の一部となった。
 
X/OpenとISOが進めていたSQL/CLIは、ODBCの有用性から業界標準となったODBCを標準規格化するための試みであり、それにMicrosoftマイクロソフトが同調した形で標準化がなされた経緯がある。そのため、ODBCもしくはSQL/CLIは多くのRDBMSでサポートされており、且つ、ODBCはほとんどの場合でSQL/CLIのスーパーセットとなっている。
 
建前上は、ODBCを利用することにより、データベースの各ベンダ固有のインターフェスを抽象化し統一的にアクセスできるようになるはずだが、単純なケースはともかく、実際にはSQLの文法が各ベンダによって方言があるように、接続以外の問題でデータベースごとの仕様(例えばロック)や特性を理解する必要がなくなるわけではない。
 
== バージョンの歴史 ==
25行目:
 
== 近年の状況 ==
 
最近ではWindowsにおいてもC言語によってODBCを直接利用することは少なくなっており、[[Microsoft Visual Basic|Visual Basic]] (VB)などでは、[[Component Object Model|COM]]としてVBから直接扱えるADO ([[ActiveX Data Objects]])の下部[[階層構造|レイヤー]]の選択肢の1つとして利用される事が多い。(ADOは、ODBCに代わり[[OLE DB]]と呼ばれるプロバイダを選択することでデータベース固有の接続方法を抽象化するが、既存のODBCとの接続のためのラップである「OLE DB Provider for ODBC」を使うこともできる。)
 
しかし、一方で、[[Microsoft SQL Server|SQL Server 2014]]以降では[[OLE DB]]は今後更新されず、汎用的な接続方法としてはODBCに回帰する方向性も示されている。<ref>http://msdn.microsoft.com/ja-jp/library/cc280510.aspx</ref><ref>http://blogs.technet.com/b/dataplatforminsider/archive/2011/08/29/microsoft-aligning-with-odbc.aspx</ref>
 
[[.NET Framework]]ではADOと同じような考え方であるが、マネージド環境となるため、これらのプロバイダは一新されている。ただし、従来の[[OLE DB]]も使えるため、OLE DBを経由したODBCへのアクセスは今日でも利用可能ではある。[[Microsoft SQL Server|SQL Server]]は当然として[[オラクル (企業)|オラクル]]などの大手RDBMSベンダは.NET Framework用のプロバイダ、もしくはOLE DBプロバイダを提供しており、あえてODBCを経由しなければならないケースは少ないと考えられる。
 
[[Java]]では、かつては[[JDBC]]が扱うデータベース・ドライバとしてType1[[デバイスドライバ|ドライバ]](JDBC-ODBCブリッジ)としてJDBCの下層の物理ドライバに使われており、まだJavaに対応していないデータベースに接続する場合などの手段として使われる場合もあったが、今日では多くのデータベースがJDBCドライバを出しており、ODBCを経由させる必要性はほとんどなくなった。(SQL Serverでさえ、JDBCドライバを出している)