ODBC was the fist formal database access technology introduced by Microsoft in the early of 1990's. ODBC provides a low-level C/C++ Application Program Interface (API) to retrieve data from relational databases such as Foxpro, MS-Access, MS-SQL Server or Oracle by using ODBC drivers and ODBC Administration.
With the help of ODBC drivers and ODBC Administration utilities, software applications can connect to any compliant-data source using ODBC API. However, ODBC is low-level and is relational in nature. It is hard to use ODBC to communicate with object databases, file systems or email stores. The advantages of ODBC are that it is a standard relational database manipulation technique, and available to multiple DBMS including those of Microsoft and Open Communities. However, using ODBC is not an affordable way of programming for high-level programmers. ODBC is a hierarchical model, which means we have to create the environment and the databases objects before creating a recordset object with which the data can be accessible. In addition, each ODBC data connector is for one data source only. To connect to multiple data sources, we need using multiple ODBC connectors. Other ODBC drawbacks also include the problem with memory management and lack of Object-oriented programming.