SELECT命令の基本事項を一通り紹介してきました。ここで、最も基本的なSELECT命令を使ったSQLをプログラミング言語から利用する方法について説明しておきます。
- DBの処理はDB側で行う -
SQLはデータベース・エンジンに対する処理命令であって、プログラミング言語の仕様とは直接関係がありません。従って、SQLは言語のソース中ではユーザーに示すメッセージなどと同じ文字列として扱われます。
プログラムはまずデータベースに接続してそれを制御できる状態にし、その上でSQLを記述した文字列をデータベース・エンジンに発行します。それ以降のデータベースに対する処理はデータベース・エンジンの側で行われ、プログラムはその結果を変数に受け取って処理を続けることになります。
- ODBCとADO -
現在の多くのRDBMSは、ODBC(Open Database Conectivity)規格に基づいたプログラミングインターフェイスを装備しており、ODBCドライバを介してプログラミング言語から制御できます。
またWindowsでは、OLE技術をベースにしたOLE DBによってRDBMSを制御できます。OLE DBを制御するためには、そのAPIを提供するADO(ActiveX Data Object)を介します。
ODBCはいわゆる旧来の手法で、RBDMSごとにODBCドライバを用意し、データソースを作成しなければならず、またドライバによるオーバーヘッドのためにアクセスに時間がかかるなど、あまり効率的な手段ではありません。現在のWindowsプログラミングでは、ADO(.NETではADO.NET)を介するのが効率的です。
- ADOの役割 -
ADOはアプリケーションとデータベースとの仲介役を務めるオブジェクトで、図1のような形態でデータベースを制御します。
ADOがアプリケーションから独立したオブジェクトであるため、どのようなプログラミング言語からでも、基本的に同じ手段でデータベースを制御できます。このときデータベース制御に使われるSQLは、先述したようにソースコード中では文字列として扱われ、それがADOを介してデータベース・エンジンへと引き渡されます。
SELECT命令によるレコードの抽出では、データベース・エンジンはSQLに基づいてレコードセットを生成します。生成されたレコードセットはRecordsetオブジェクトとしてADOの側で保持され、プログラミング言語(アプリケーション)の側からはそれへの参照にアクセスできます。
|
|
|