次の方法で共有


ドライバーのアーキテクチャ

ドライバーのアーキテクチャは、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 のみを実装する可能性が高いということです。

このセクションでは、次のトピックを扱います。