任何人都可以帮助我理解本机数据库连接器和ODBC连接器之间的确切区别。我google了很多,发现在本机连接器SQL中,数据和应用程序内部构建的实际接口是专门为特定数据库设计的。现在是什么意思,特别为特定数据库而设计的#34; 假设我的代码是用C ++编写的,我使用本机连接器连接到SQLServer。使用odbc连接器使用本机连接器时它会有什么不同。如果这是一个愚蠢的问题,请原谅我。
http://www.information-management.com/news/ask_the_experts/-1077488-1.html 谢谢, 尼
答案 0 :(得分:1)
ODBC是一个通用的,与DBMS无关的API。
ODBC驱动程序在此通用API与DBMS客户端和/或引擎的DBMS特定API之间进行调解。
如果您将代码编写到ODBC API,并且仅使用通用查询语法(没有特定于DBMS的查询语法,如Microsoft SQL Server的Transact-SQL或Oracle的Oracle-SQL),则可能针对任何语法运行ODBC驱动程序,因此任何DBMS,通常只需要很少的额外测试或代码工作。
如果您将代码编写到特定于DBMS的API,或使用特定于DBMS的查询语法(例如Transact-SQL或Oracle-SQL),则只能针对该DBMS运行,并且只能通过这些DBMS客户端库运行 - 甚至可能是DBMS版本特定的。适应不同的DBMS或相同DBMS和/或其客户端库的不同版本可能需要大量的测试和代码工作。
这个编译应用程序(无需重新编译,重新链接等)可移植性和面向未来(在某些限制内)是ODBC和JDBC以及其他与DBMS无关的数据访问协议的基本价值主张。