ドライバーのアーキテクチャ
ドライバーのアーキテクチャは、SQL ステートメントを処理するソフトウェアに応じて、次の 2 つのカテゴリに分類されます。
ファイル ベースのドライバー ドライバー は、物理データに直接アクセスします。 この場合、ドライバーはドライバーとデータ ソースの両方として機能します。つまり、ODBC 呼び出しと SQL ステートメントを処理します。 たとえば、dBASE ドライバーはファイル ベースのドライバーです。dBASE には、ドライバーで使用できるスタンドアロン データベース エンジンが用意されていないためです。 ファイル ベースのドライバーの開発者は、独自のデータベース エンジンを記述する必要があることに注意してください。
DBMS ベースのドライバー ドライバー は、別のデータベース エンジンを介して物理データにアクセスします。 この場合、ドライバーは ODBC 呼び出しのみを処理します。SQL ステートメントをデータベース エンジンに渡して処理します。 たとえば、Oracle ドライバーは DBMS ベースのドライバーです。Oracle には、ドライバーが使用するスタンドアロン データベース エンジンがあるためです。 データベース エンジンが存在する場所は重要ではありません。 ドライバーと同じコンピューター上に配置することも、ネットワーク上の別のマシンに配置することもできます。ゲートウェイを介してアクセスされる場合もあります。
ドライバーのアーキテクチャは、一般的にドライバー ライターにのみ興味深いものです。つまり、ドライバーのアーキテクチャは通常、アプリケーションに違いはありません。 ただし、アーキテクチャは、アプリケーションで DBMS 固有の SQL を使用できるかどうかに影響を与える可能性があります。 たとえば、Microsoft Access はスタンドアロン データベース エンジンを提供します。 Microsoft Access ドライバーが DBMS ベースの場合、このエンジンを介してデータにアクセスします。アプリケーションは、処理のために Microsoft Access-SQL ステートメントをエンジンに渡すことができます。
ただし、ドライバーがファイル ベースの場合(つまり、Microsoft Access .mdb ファイルに直接アクセスする独自のエンジンが含まれる)、Microsoft Access 固有の SQL ステートメントをエンジンに渡すすべての試みは、構文エラーを起こす可能性があります。 その理由は、独自のエンジンが ODBC SQL のみを実装する可能性が高いということです。
このセクションでは、次のトピックを扱います。