本机驱动程序如何工作?

How does a native driver work?

任何人都可以帮助我了解本机数据库连接器和 ODBC 连接器之间的确切区别是什么。我在谷歌上搜索了很多,发现在本机连接器 SQL 中,应用程序内部构建的数据和实际接口是专门为特定 database.Now 设计的 "specially designed for a specific database" 假设我的代码是用 C++ 编写的,我使用本机连接器连接到 SQLServer。使用本机连接器与使用 odbc 连接器有何不同。如果这是一个愚蠢的问题,请原谅我。

http://www.information-management.com/news/ask_the_experts/-1077488-1.html 谢谢, 尼图

ODBC 是通用的,与 DBMS 无关的 API。

ODBC 驱动程序在此通用 API 和 DBMS 客户端 and/or 引擎的特定 DBMS API 之间进行调解。

如果您将代码写入 ODBC API,并且仅使用通用查询语法(没有特定于 DBMS 的查询语法,例如 Transact-SQL for Microsoft SQL Server,或 Oracle-SQL for Oracle),它可能 运行 针对任何 ODBC 驱动程序和任何 DBMS,通常只需最少的额外测试或代码工作。

如果您将代码写入特定于 DBMS 的 API,或使用特定于 DBMS 的查询语法(例如 Transact-SQL 或 Oracle-SQL),它可以仅 运行 针对该 DBMS,并且仅通过那些 DBMS 客户端库——甚至可能是特定于 DBMS 版本的。适应不同的 DBMS 或同一 DBMS 的不同版本 and/or 其客户端库可能需要大量测试和代码工作。

此编译应用程序(无需重新编译、重新链接等)的可移植性和面向未来(在一定范围内)是 ODBC 和 JDBC 以及其他 DBMS 不可知论者的基本价值主张数据访问协议。