The difference between ODBC, OLE DB, and ADO

Source: Internet
Author: User
Tags driver manager odbc ole access database

Ole DB is the full Name object link and embed, which is the object connection and embedding. Is Microsoft's strategic low-level application interface to different data sources. OLE DB includes not only the structured Problem language (SQL) capability of the Microsoft-funded standard data Interface Open Database Connectivity (ODBC), but also the pathways for other non-SQL data types.

OLE DB is mostly composed of three parts: the data Providers data provider that provides data through OLE DB. For example, a data table in a SQL Server database, or an Access database file named MDB, is a Provider. Data consumers is the data consumer of an OLE DB user who uses OLE DB to provide data for a program or component. In other words, all applications or Web pages that use ADO are data users of OLE DB. The Service Components data Service component can perform the work of data delivery between the data provider and the data consumer, and the data consumer is performing the query through the query processor of the OLE DB serviced component when it requests data from the data provider. The query results are managed by the pointer engine. Since OLE DB and ODBC standards are all designed to provide a unified access data interface, it was once wondered if OLE DB was the new standard for ODBC. The answer is in the negative. In fact, the ODBC standard object is a SQL-based data source (sql-based), whereas OLE DB objects are any data store of a wider scope. In this sense, ODBC-compliant data sources are subsets of data stores that conform to OLE DB standards. ODBC-compliant data sources to conform to the OLE DB standard, you must also provide the appropriate OLE DB service program (service Provider), just as SQL Server must provide an ODBC driver for SQL Server to comply with ODBC standards. Now, Microsoft itself has provided a unified OLE DB service program for all ODBC data sources, called ODBC OLE DB Provider. After the ODBC OLE DB Provider was released, it was also feared that the ODBC Provider was not a new layer (layer) above ODBC? If so, does using OLE DB access the ODBC data source affect performance? The answer, too, is negative. In fact, the role of ODBC Provider is to replace the ODBC Driver Manager as a bridge between the application and the ODBC driver, without theoretically adding any overhead.
  • First, ODBC

      • The Origin of ODBC

    In 1992, Microsoft and Sybase and digital jointly developed an ODBC standard interface to access a wide variety of databases in a single ODBC API. Subsequently, ODBC gained the support of many database vendors and Third-party, and gradually became the standard data access technology.
    ODBC supports a wide range of databases with the scope covered by the then industry standard specification X/opencall-levelinterface (CLI) and Iso/iec9075-3call-levelinterface (SQL/CLI). Although ODBC is inefficient in its initial version and has limited functionality, it is also demeaning. However, as Microsoft continues to improve ODBC, and the efficiency of ODBC is increasing, the functionality of the ODBC driver is becoming more complete. To date, ODBC has been a stable and efficient data access engine. However, ODBC supports only relational databases, as well as traditional database data types, and serves only in the form of C/C + + language APIs (the API is the lowest-level program, which is the least--. dll file in Windows) and therefore does not conform to increasingly complex data access applications , and cannot be used for scripting languages. So Microsoft, in addition to ODBC, has introduced other data access technologies to meet the different needs of programmers. (Note: ODBC is a process-oriented language, developed by the C language, can not be compatible with multiple languages, so it is difficult to develop, and only support limited database company, for the later Excel, etc. cannot support at all)

      • Introduction to ODBC

    ODBC, open Database Connectivity, is an integral part of the database in the Microsoft Open Service Architecture (Wosa,windows Open Services Architecture), which establishes a set of specifications and provides a set of standard APIs (application programming interfaces) for database access. These APIs use SQL to accomplish most of their tasks. ODBC itself also provides support for the SQL language, which allows users to send SQL statements directly to ODBC.

    To access a database, the application must first register a data source with the ODBC Administrator, which establishes the connection between ODBC and a specific database based on information such as the database location, database type, and ODBC driver provided by the data source. This allows the application to establish a connection to the corresponding database as long as the data source name is supplied to the ODBC,ODBC.


    Second, OLE DB

      • The origin of Ole-db

    As data sources become increasingly complex, it is likely that today's applications will need to get data from different data sources, process them, and then output the processed data to another data source. More troubling is that these data sources may not be traditional relational databases, but may be electronic signature information on Excel files, email,internet/intranet. Microsoft to enable applications to access a wide variety of different numbers in a unified manner
    The universaldataaccess (UDA) architecture was proposed in 1997. UDA, with COM technology as its core, assists programmers in accessing various data sources in the enterprise. UDA is a skeleton of technology with OLE-DB (software that belongs to the operating system level). OLE-DB defines a unified COM interface as a standard for accessing various heterogeneous data sources, and is encapsulated within a set of COM objects. With OLE-DB, programmers can access a variety of data in a consistent way. But still OLE DB is a low-level, inefficient use.

      • Introduction of OLE-DB

    OLE DB (object link and embed are objects connected and embedded. ) is Microsoft's strategic low-level application interface to different data sources. OLE DB includes not only the structured Problem language (SQL) capability of the Microsoft-funded standard data Interface Open Database Connectivity (ODBC), but also the pathways for other non-SQL data types. As a design of Microsoft's Component Object Model (COM), OLE DB is a set of methods for reading and writing data (which in the past may be called a channel). The objects in the old DB mainly include the data source object, the stage object, the Command object, and the row group object. Applications that use OLE DB use the following request sequence: Initialize OLE connection to data source Issue command processing results release the data source object and stop initializing OLE

    The new concept defined in the OLE DB standard----OLE DB divides traditional database systems into logical components that are relatively independent and communicate with one another. The various parts of this component model are labeled with different names: Data Provider. Software components that provide data storage, small to normal text files, complex databases large to the host, or e-mail storage are examples of data providers. Some documents refer to developers of these software components as data providers.

    To open data in an Access database, we must open it with the OLE DB. ADO uses OLE DB to get the data because OLE DB knows how to communicate with many kinds of data sources, so it is important to have a good understanding of OLE DB.

      • The difference between OLE DB and ODBC

    Since OLE DB and ODBC standards are all designed to provide a unified access data interface, there was a confusion: is it a new standard for ODBC? The answer is in the negative. In fact, the ODBC standard object is a SQL-based data source (sql-based), whereas OLE DB objects are any data store of a wider scope. In this sense, ODBC-compliant data sources are subsets of data stores that conform to OLE DB standards.

    Third, ADO

      • The origin of ADO

    While OLE-DB allows programmers to access various types of data, it is a very good architecture, but because OLE-DB is too low-level and very complex to use, it requires the programmer to have great skill, so only a few programmers have the means to use ole-db. This makes ole-db unable to be widely popular. To solve this problem, and to allow VB and scripting languages to access various data sources via OLE-DB, Microsoft also encapsulates ole-db as an ADO object in COM technology (this step is important to realize that many programs can be tuned to each other and can be developed in a rich language) Simplifies the work of programmer data access. Since ADO successfully encapsulates most of the functionality of OLE-DB and greatly simplifies data access, ADO is increasingly accepted by more and more programmers.

      • Introduction to ADO

    Microsoft's ADO (ActiveX data Objects) is a COM component that is used to access data sources. It provides a programming language and uniform data access for an intermediate layer of OLE DB. Allows developers to write code that accesses data without worrying about how the database is implemented, but only the connections that are concerned with the database. When accessing a database, knowledge of SQL is not necessary, but SQL commands supported by a particular database can still be executed through the Command object in ADO.

    ADO was designed to inherit the early Microsoft Data Access object layer, including RDO (Remote dataobjects) and DAO (data Access Objects). ADO was released in the winter of 1996.

    ADO consists of 6 classes: Connection,command,recordset,errors,parameters,fields

      • Talk about your own understanding.

    Say that the popular Point OLE DB and ODBC are the most basic things, and the ADO object provides us with a "visualization", and the application layer directly interacting with the components, we do not have to pay much attention to the internal mechanism of OLE DB, only need to understand the ADO to create a data source through OLE database several ways, You can easily get the data source through ADO. It can be said that ADO is a middle tier of the application and data underlying, and ADO objects indirectly acquire data from the database through OLE DB. OLE DB simply provides a common interface to a variety of databases, which can be simply used to represent:

The difference between ODBC, OLE DB, and ADO

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.