Original:ODBC, OLE DB, ADO, ADO. A brief history of the evolution of net
1. Evolution History
They are gradually appearing in the order of this time, prehistoric->odbc->oledb->ado->ado.net.
Look at the MDAC definition on the wiki: "Microsoft Data Access Components (MDAC) is the application development interface that Microsoft has developed specifically for the data access function, as a unified data access for Microsoft (Universal. UDA) solution, the original version was published in 1996, and its constituent components are Odbc,ole DB and ADO, where ADO is the only data access pipeline on Visual Basic, and OLE db is COM-based for C/ Access to the interface that provides the data, and ODBC is the unified data Access API. ”
That is, ODBC, OLE DB, ADO are the components of this solution.
Look at this call graph again, a lot of things are self-evident. (In fact, I think this figure is somewhat inaccurate,. Net Managed provider should have a dedicated line through the data Stores, so as to reflect the performance advantages of SQL Server ...)
2.ODBC ago
In fact, this can almost be called prehistoric, when data access is like this ...
Summary is: The previous access to Oracle, it is necessary to use the Oracle API, to access DB2, it is necessary to use the DB2 API, so that the code is not the same, once the leadership to replace the database, the results of the programmer on the blood mold, this is not a good way, ODBC came into being.
3.ODBC
An earlier data access library, now obsolete, but also occasionally useful, see the following image:
Here is a description of its wiki:
"In Computing, ODBC (Open Database Connectivity) are a standard C programming language interface for accessing Database Mans Agement Systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application can use ODBC to query data from a DBMS, regardless of the operating system or DBMS it uses.
ODBC accomplishes DBMS independence by using a ODBC driver as a translation layer between the application and the DBMS. The application uses ODBC functions through an ODBC driver manager with which it is linked, and the driver passes the Quer Y to the DBMS.
"ODBC defines a standard C API for accessing a relational DBMS. It is developed by the SQL Access Group in 1992 to standardize, the use of a DBMS by an application. ODBC provides a universal middleware layer between the application and DBMS, allowing the application developer to use a s Ingle interface. If changes is made to the DBMS specification, only the driver needs updating. An ODBC driver can is thought of as analogous to a printer or other driver, providing a standard set of functions for the Application to use, and implementing dbms-specific functionality.
An application the can use ODBC was referred to as "Odbc-compliant". Any odbc-compliant application can access any DBMS for which a driver is installed. Drivers exist for all major DBMSs and even for text or CSV files. "
"An ODBC driver enables-odbc-compliant application to use a data source, normally a DBMS. (Some Non-dbms drivers exist, for such data sources as CSV files.) Such drivers implement a small DBMS.) ODBC drivers exist for most DBMSs, including Oracle, Microsoft SQL Server (and not for the Compact aka CE Edition), Sybase ASE, and DB2.
Because different technologies has different capabilities, most ODBC drivers does not implement all functionality defined I n the ODBC standard. Some drivers offer extra functionality no defined by the standard. "
In summary: ODBC can handle relational databases.
4.OLE DB
Look at the picture First!
In summary: The innovation of OLE DB is that it can handle relational databases, as well as non-relational data, such as Excel, which is more advanced than ODBC.
5.ADO
Take a look at the diagram below to see that, in a word, ADO encapsulates OLE DB.
Wiki says: "Microsoft's ActiveX Data Objects (ADO) is a set of Component Object Model (COM) Objects for accessing Data sources . A part of MDAC, it provides a middleware layer between programming languages and OLE DB (a means of accessing data stores, Whether they is databases or otherwise, in a uniform manner). “
Bottom line: ADO is actually an additional layer at the top of OLE DB (that is, between OLE DB and the application), which encapsulates OLE DB (which is precisely encapsulating a subset, but is sufficient)
The string used by ADO and OLE DB to connect SQL database is the same: connstr= "PROVIDER=SQLOLEDB; DATA Source=servername; Uid=xx; Pwd=xxx;database=dbname "
Just ADO API easy to use, we are more familiar with it, in fact, the end is through OLE DB to achieve.
6.ado.net
The wheels were rolling and finally came to ADO.
ADO (ActiveX Data Objects for. NET) are a set of computer software components that programmers can use to access Data a ND Data Services. It is a part of the base class library which is included with the Microsoft. NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also acc ESS data in non-relational sources. ADO sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but were changed so extensively that It can considered an entirely new product. "
See, System.Data.SqlClient and System.Data.OleDb difference, on performance, SqlClient access to SQL Server the fastest, on the universality, or to use OLE DB. Although no SYSTEM.DATA.ODBC figure was found, it was believed to be similar to OLE DB.
7.ODBC vs. OLE DB differences
Already written, and again, ODBC can only handle relational databases, and OLE DB can handle relational databases as well as non-relational databases such as Excel.
Recommended Information:
1.MDAC
Http://zh.wikipedia.org/wiki/Microsoft_Data_Access_Components
2.ActiveX Data Objects
Http://en.wikipedia.org/wiki/ActiveX_Data_Objects
3.ODBC
Http://en.wikipedia.org/wiki/ODBC
4.ODBC, OLE DB, ADO, SQL relationships
Http://www.cnblogs.com/yuanfubiao/archive/2010/12/22/1914149.html
The difference between 5.ado,oledb,odbc,dao.
http://blog.csdn.net/sunboy_2050/article/details/6624684
6.ADO. NET essence theory
7.ADO and ADO Programming Guide
"Reprint" ODBC, OLE DB, ADO, ADO. A brief history of the evolution of net