驱动程序体系结构

驱动程序体系结构分为两个类别,具体取决于哪些软件处理 SQL 语句:

  • 基于文件的驱动程序驱动程序直接访问物理数据。 在这种情况下,驱动程序充当驱动程序和数据源;也就是说,它处理 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。

本部分包含以下主题。