This article was previously published under Q110093
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
Open Database Connectivity (ODBC) is Microsoft's strategic interface for accessing data in a heterogeneous environment of relational and non- relational database management systems. Based on the Call Level Interface specification of the SQL Access Group, ODBC provides an open, vendor- neutral way of accessing data stored in a variety of proprietary personal computer, minicomputer, and mainframe databases.
ODBC alleviates the need for independent software vendors and corporate developers to learn multiple application programming interfaces. ODBC now provides a universal data access interface. With ODBC, application developers can allow an application to concurrently access, view, and modify data from multiple, diverse databases.
ODBC is a core component of Microsoft Windows Open Services Architecture. Apple has endorsed ODBC as a key enabling technology by announcing support into System 7 in the future. With growing industry support, ODBC is quickly emerging as an important industry standard for data access for both Windows and Macintosh applications.
ODBC is a specification to which developers write either:
An ODBC-enabled "front-end" or "client" desktop application, also known as an "ODBC Client." This is the application that the computer-user sees on the computer screen.
An ODBC Driver for a "back-end" or "server" DBMS (Database Management System). This is the DBMS application that resides on a computer that is used to store data for access by several users. This application is not what is loaded on the end user's computer. This server application is usually more robust (faster, with centralized security, and backups of data, and so forth) than the client application. The ODBC Driver resides between the ODBC Client and the DBMS; however, it is loaded on the front-end computer.
To use ODBC, the following three components are required:
ODBC CLIENT - an ODBC-enabled front-end (also called ODBC client) - Examples: Microsoft Access, an application created with Access, an application created with Microsoft Visual Basic, an application created with C+Win SDK+ODBC SDK, or ODBC-enabled applications from other vendors (such as Lotus).
ODBC DRIVER - an ODBC Driver for the ODBC Server. The ODBC Driver Catalog contains an extensive listing of ODBC Drivers. For example, the Microsoft ODBC Driver Pack is a collection of seven ODBC Drivers ready to be used or bundled with ODBC clients. A SQL Server ODBC Driver is included with Access, and Informix is working on an ODBC driver for Informix. To obtain an ODBC Driver Catalog, call the Microsoft Order Desk at (800) 360-7561. If you are outside the United States, contact your local subsidiary. To locate your subsidiary, see the Microsoft World Wide Offices Web site at:
Any ODBC client can access any DBMS for which there is an ODBC Driver. DBMS SERVER is a back-end or server DBMS, for example SQL Server, Oracle, AS/400, Foxpro, Microsoft Access, or any DBMS for which an ODBC driver exists.
How do these three components interact?
The ODBC client uses a language or vocabulary of commands (which is referred to as "ODBC") to request data from, or to send data to, the back- end or server DBMS. However, the DBMS doesn't understand the ODBC client request until the command passes through the ODBC Driver for that specific DBMS. This ODBC driver is software that resides on the front-end. The ODBC driver translates the command into a format that the ODBC Server can understand. The ODBC Server sends the answer back to the ODBC Driver, which translates the answer into a format that the ODBC Client can understand.
What's so great about ODBC?
First, application developers don't need to modify their applications to allow them to access data from several back-ends. As long as there is an ODBC Driver for a particular back-end, an ODBC-enabled front-end can access it. Second, one ODBC Driver for a particular DBMS allows any ODBC-enabled application to be an ODBC client.
Examples of ODBC in Use
Access front-end accessing data from a Oracle back-end using the Oracle ODBC Driver, which ships with Access 1.1.
Visual Basic front-end accessing data from a dBASE back-end using the dBASE ODBC Driver, which is part of the MS ODBC Database Drivers Pack.
C application written using C+ODBC SDK+Win SDK accessing data from an AS/400 using the AS/400 ODBC Driver available from Rochester Software.
Basic Questions and Answers
What is the ODBC SDK?
The ODBC SDK is distributed on floppy disks, and contains about 150 pages of text that allows a developer to write an ODBC-enabled Client or an ODBC Driver. The ODBC SDK is to be used in conjunction with the Windows Software Developers Kit (SDK) and a C Compiler.
What is the ODBC Database Driver Pack?
The ODBC Database Driver Pack is a collection of ODBC Drivers that is sold by Microsoft.
What is the ODBC Driver Catalog?
The ODBC Driver Catalog contains descriptions of ODBC drivers developed by Microsoft and other software companies. It contains an explanation of ODBC, and demonstrates industry support for the standard.
What ODBC drivers are currently available?
Dozens of ODBC drivers are currently available, including those for Microsoft SQL Server, XLS, Text, xBase, Paradox, ODS, Oracle, RedISAM, FoxBase, Btrieve, Integra-SQL, DEC Rdb, SQLBase, Informix, Ingres, DB2, SQL/DS, Teradata, and SQL/400.
How do I write an ODBC driver?
To write an ODBC driver, use C+Win SDK+ODBC SDK.
What ODBC clients are currently available?
From Microsoft: Access, Visual Basic, Foxpro+Connectivity Kit, Word 6.0 for Windows, Excel 5.0, MS Query Tool.
From other vendors: PowerSoft, ObjectView, Lotus 1-2-3, Lotus Approach, Lotus Notes, Q+E, and others.
How does one write an ODBC client?
By using C+Win SDK+ODBC SDK, or by using Access, or by using Visual Basic, or by using WinFox +Connectivity Kit, or by using one of the tools from other vendors designed to do this.
For more information about ODBC, please see the following articles in the Microsoft Knowledge Base: 132131 ODBC Database Drivers 2.0 Supported Platforms
Microsoft provides third-party contact information to help you find technical support. This contact information may change without notice. Microsoft does not guarantee the accuracy of this third-party contact information.