Can anyone help me understand what is the exact difference between a native database connector and ODBC connector. I googled a lot and found that , in native connector SQL, data and the actual interfaces built inside the application have been specially designed for a specific database.Now what is meant by "specially designed for a specific database" Lets say my code is written in C++ and I use a native connector to connect to SQLServer. How will it differ using a native connector wrt using a odbc connector. Pardon me if this is a stupid question.
http://www.information-management.com/news/ask_the_experts/-1077488-1.html Thanks, Neethu
ODBC is a generic, DBMS-agnostic API.
ODBC Drivers mediate between this generic API and the DBMS-specific APIs of DBMS clients and/or engines.
If you write your code to the ODBC API, and use only generic query syntax (no DBMS-specific query syntax, like Transact-SQL for Microsoft SQL Server, or Oracle-SQL for Oracle), it may be run against any ODBC driver and thus any DBMS, typically with minimal additional testing or code work.
If you write your code to a DBMS-specific API, or use DBMS-specific query syntax (such as Transact-SQL or Oracle-SQL), it can only be run against that DBMS, and only through those DBMS client libraries -- which may even be DBMS version specific. Adapting to a different DBMS or to different versions of the same DBMS and/or its client libraries can require significant testing and code work.
This compiled-app (no need to recompile, relink, etc.) portability and future-proofing (within some limits) is the basic value proposition of both ODBC and JDBC, among other DBMS-agnostic data access protocols.