基于 DBMS 的驱动程序
基于 DBMS 的驱动程序与提供独立数据库引擎供驱动程序使用的数据源(如 Oracle 或 SQL Server)结合使用。 这些驱动程序通过独立引擎访问物理数据;也就是说,它们向引擎提交 SQL 语句并从中检索结果。
由于基于 DBMS 的驱动程序使用现有的数据库引擎,因此它们通常比基于文件的驱动程序更容易写入。 尽管可以通过将 ODBC 调用转换为本机 API 调用来轻松实现基于 DBMS 的驱动程序,但这样会导致驱动程序变慢。 实现基于 DBMS 的驱动程序的更好方法是使用基础数据流协议,这通常是本机 API 执行的操作。 例如,SQL Server 驱动程序应使用 TDS(SQL Server 的数据流协议),而不是 DB 库(SQL Server 的本机 API)。 此规则的例外情况是,ODBC 为本机 API。 例如,Watcom SQL 是一个独立引擎,驻留在应用程序所在的同一台计算机上,并作为驱动程序直接加载。
基于 DBMS 的驱动程序充当客户端/服务器配置中的客户端,其中数据源充当服务器。 在大多数情况下,客户端(驱动程序)和服务器(数据源)驻留在不同的计算机上,但这两者可能驻留在运行多任务操作系统的同一台计算机上。 第三种可能性是网关,它位于驱动程序和数据源之间。 网关是导致一个 DBMS 看起来像另一个 DBMS 的软件。 例如,为使用 SQL Server 而编写的应用程序还可以通过 Micro Decisionware DB2 网关访问 DB2 数据;此产品使 DB2 看起来像 SQL Server。
下图显示了基于 DBMS 的驱动程序的三种不同配置。 在第一个配置中,驱动程序和数据源驻留在同一台计算机上。 在第二个配置中,驱动程序和数据源驻留在不同的计算机上。 在第三个配置中,驱动程序和数据源驻留在不同的计算机上,网关位于它们之间,驻留在另一台计算机上。