What is ODBC used for: a complete and practical guide

Last update: 28/11/2025
Author Isaac
  • ODBC is a standard API that allows very different applications to access multiple databases using SQL without depending on a specific provider.
  • The ODBC architecture is based on an intermediate layer with a driver manager, drivers specific and configurable data sources via DSN or connection strings.
  • Tools like Access, Qlik Sense, or Tableau leverage ODBC to connect to numerous DBMSs, managing capabilities, performance, and security according to the driver.
  • ODBC coexists with other standards such as JDBC in Java, remaining the de facto reference for accessing SQL sources in native applications and corporate environments.

odbc

If you work with data on a daily basis, sooner or later the dreaded acronym ODBC appears and more than one person wonders what it is for exactly. ODBC is one of those silent standards that make it possible for very different applications and databases to understand each other., without having to rewrite all your code every time you change providers.

Although newer technologies exist today, ODBC remains key in many environments: from Office tools such as Excel or AccessFrom BI solutions like Tableau or Qlik Sense to legacy enterprise applications that still handle critical data, we'll take a closer look at what it is, what it's used for, how it works internally, and how to configure it in practice.

What is ODBC and what is it really used for?

ODBC stands for Open Database ConnectivityThis is an interface for programming of open standard application (API) designed to access databases uniformly, regardless of the underlying database management system (DBMS).

The idea is simple but incredibly powerful: You write your application once, using ODBC calls and standard SQL statements, and let a driver handle speaking the "native language" of each database.This allows you to switch from Access to SQL Server, from MySQL to Oracle, or even to a simple text file, without having to rewrite all the data access logic.

ODBC acts as a bridge between the client application and the DBMS. The application sends SQL requests using the ODBC API, and the driver translates those requests into a format that the specific DBMS understands. and returns the results back to the application. Thanks to this, the program does not need to know the proprietary characteristics of each database.

This standard was created in the early 90s by the SQL Access Group and Microsoft was the main driver in the world Windowswith the first driver SIMBA.DLL (developed in conjunction with Simba in 1992). Today, there are implementations in Windows, UNIX, Linux, OS/2 and macOS, making ODBC a widely used cross-platform solution.

ODBC usage scheme in applications

History and evolution of ODBC

The history of ODBC is closely linked to the evolution of data access in Microsoft environments and open standards. ODBC relies on the SQL Call-Level Interface (CLI) specification from The Open Group and ISO/IEC, which defined how call-level database access APIs should be.

The first version of ODBC was released in September 1992 (ODBC 1.0)From there, versions with new capabilities and performance improvements followed: ODBC 2.0 (around 1994), 2.5, ODBC 3.0 (around 1995, with key contributions from IBM and Intersolv), ODBC 3.5 (1997) and ODBC 3.8 around 2009, which was integrated with Windows 7.

In parallel, Microsoft attempted to go beyond ODBC by creating other data access models: OLE DB, ADO, DAO, RDS, Jet Engine and later ADO.NET. The initial plan was for technologies like OLE DB and ADO to replace ODBC as the main standard for data access, especially in more object-oriented scenarios and with data sources that are not necessarily SQL.

However, the reality of the market was different: ODBC maintained its position as the de facto standard for accessing SQL sourcesThe massive support from providers like Oracle and IBM, its multi-platform nature, and the huge existing application park ensured that it remained the preferred option in many projects.

Today, when we talk about accessing SQL databases, the two major standards that remain fully in force are ODBC and JDBCOther models such as OLE DB or some ADO layers have lost much relevance and in many cases are being abandoned or remaining only for compatibility with older applications.

ODBC architecture: how it works on the inside

To fully understand what ODBC is for, it's helpful to look at its architecture. ODBC introduces an intermediate layer between the application and the DBMS. so that the app does not talk directly to the database, but to a standard API.

  SQL View In Access 2010, 2013 And Access 2016

In general terms, the flow is as follows: The application sends SQL requests to the ODBC Driver Manager, which locates and loads the appropriate driver for the target database.The controller translates the request into the DBMS's native protocol, the database processes the query, and the results are returned along the same path back to the application.

This architecture allows not only vendor independence, but also the resolution of Topics such as version compatibility, error handling, data type conversion, and SQL syntax differences between engines. Everything is made as transparent as possible for the person programming the application.

In the context of Windows, ODBC is part of the Windows Open Services Architecture (WOSA), an open services architecture in which desktop applications can connect to different computing environments without being rewritten for each platform.

ODBC architecture and main components

Main components of ODBC

The typical implementation of ODBC on Microsoft systems and on many platforms follows a common structure. We can distinguish several key components that work together to provide that open connectivity.

On one side is the ODBC APIA SQL API is a set of call functions, error codes, and standard SQL conventions that the application uses to work with data. This API defines how connections are opened, queries are sent, results are retrieved, and transactions are managed, without depending on the specific DBMS.

Another essential element is the ODBC Driver Manager (On Windows, the Odbc32.dll library). This dynamic link library sits between the application and the specific drivers, loads transparently, and is responsible for locating, loading, and downloading the appropriate drivers, as well as managing versions and compatibility.

Then we found the ODBC database driversEach DBMS (SQL Server, Oracle, MySQL, DB2, etc.) has its own driver, usually in the form of one or more DLLs. These drivers are what actually translate the ODBC API calls into native DBMS calls, handling the specific SQL syntax, internal data types, and the particularities of each engine.

In some environments, a ODBC cursor library (for example, Odbccr32.dll on Windows), which is placed between the Driver Manager and the drivers themselves to manage scrolling through result sets, advanced cursors, and other data navigation operations.

Finally, we have the ODBC Data Source AdministratorA graphical or configuration tool that allows you to define and modify the system's data sources (DSN). From there, you decide which driver to use, which server or file to connect to, and with what authentication parameters.

ODBC-enabled applications and data source types

Any software that can open a connection using the standard API can be considered a ODBC-enabled applicationIn the real world, this includes everything from office software to analytics tools and custom business applications.

Some typical examples are Microsoft Excel, Microsoft Access, Power BI, Tableau, Crystal Reports, Qlik Sense and a multitude of management applications (ERP, CRM, vertical solutions, etc.) that need to read or write data in different systems.

To enable the application to know how to access the data, ODBC data sources are used, which combine the data origin with the Required connection information: server location, database name, username, password, and driver-specific optionsThis configuration is usually encapsulated in a DSN (Data Source Name) or a connection string.

In Windows, ODBC data sources are managed through the ODBC Data Source AdministratorThere you can configure different types of DSNs, each with its own scope and mode. storageThis offers considerable flexibility when deploying applications on individual computers or shared servers.

An important detail is that Data access classes and libraries can work with any source that has an available ODBC driverThis includes relational databases, ISAM engines, Excel spreadsheets, text files, or even live data sources that expose their data in a tabular format accessible via SQL.

  Connect to Access using System.Data.OleDb in PowerShell

DSN types and connection strings in ODBC

odbc

When we talk about configuring ODBC, the concept of DSN almost always comes up. DSN (Data Source Name) groups all the data necessary to open the connection: which driver to use, which server it points to, which specific database, credentials and additional options.

In Windows systems, three types of DSNs are distinguished. user DSN They store the settings in the Registry only for the current user profile, so only that account can use them. They are useful when you want to isolate connections by user and prevent others from seeing the settings.

Los System DSN These settings are also stored in the Registry, but are visible to all users of the computer, including system services. They are the recommended option for servers or shared installations, as they allow different accounts to use the same connection configuration without duplication.

On the other hand, there are file DSNThese DSNs store connection information in a text file with the .dsn extension instead of in the Registry. These DSNs are generally more flexible, as they can be copied to other computers with the same driver installed, or placed on a shared server to centralize configuration.

In addition to shareable DSNs, there are non-shareable archive DSNs that They reside on a single computer and act as a pointer to a machine DSN.This allows you to leverage existing data sources without exposing the entire configuration publicly.

In many languages ​​(for example, Visual Basic or C#) you can also choose not to define a DSN and pass a direct connection string to the ODBC Driver ManagerThis string includes the same parameters as a DSN but embedded in the code, which simplifies application distribution at the cost of losing some administrative flexibility.

Practical ODBC configuration in Windows

The typical process for starting to use ODBC in Windows follows a few clear steps. First, You need to install the appropriate ODBC driver for the target DBMSSometimes it comes with Windows itself (for example, generic drivers for SQL Server or Access) and other times it is provided by the database manufacturer or a specialized third party.

Once the driver is installed, the tool opens. “Data sources (ODBC)” From Control Panel → Administrative Tools. This utility opens the ODBC Data Source Manager, where you can choose whether to create a user, system, or file DSN, depending on your security and sharing needs.

The next step is to click on “Add”, select the corresponding controller (for example, “SQL Server”, “Microsoft Access Driver (*.mdb, *.accdb)”etc.) and follow the wizard: you will usually be asked for the descriptive name of the source, the server or file it points to, and in many cases credentials or authentication mode.

In 64-bit environments, attention must be paid to the architecture: a 64-bit Windows installation includes two versions of the ODBC Manager (Odbcad32.exe)The 64-bit version is located in %systemdrive%\Windows\System32 and the 32-bit version in %systemdrive%\Windows\SysWOW64. A 32-bit driver only appears in the 32-bit driver manager, and the same applies to 64-bit drivers.

Applications such as Access, Qlik Sense, or Tableau connect to external databasesSome also offer their own connectors that encapsulate licensed ODBC drivers (for example, Qlik's ODBC Connector Package) so that the user doesn't even have to go through the Windows Data Source Manager.

Using ODBC with tools like Access, Qlik Sense, or Tableau

In Microsoft Access, ODBC is used to link or import data from external sources for which Access does not have a built-in native driversuch as SQL Server, Oracle, or third-party databases. The process is the usual one: Access connects to the ODBC Driver Manager, which uses the specific driver (for example, the SQL Server driver), and the connection to the database is opened.

With Qlik Sense we have two options. On the one hand, use connectors included in the Qlik ODBC Connector PackageThese methods expose optimized “Qlik-xxx” drivers that are configured directly from the Qlik interface, bypassing the Windows ODBC manager. Alternatively, you can manually install an ODBC driver for the DBMS and create a user or system DSN that Qlik Sense will use when establishing the data connection.

  What is Role Map: Role maps, roles and data map

In Qlik Sense Desktop, the DSN list can show both DSNs created in Windows and internal package drivers (identified with the prefix “Qlik-”). These internal drivers cannot be used to create generic ODBC connections. outside the Qlik ecosystem; they are designed exclusively for the database connectors that come with the product itself.

In the case of Tableau, there is a collection of finely tuned native connectors for specific databases (Snowflake, SQL Server, Oracle, etc.), but A generic ODBC connector is also offered This connector is useful when you need to access a database for which there is no specific connector. It leverages the ODBC standard to communicate with virtually any source that implements SQL and the ODBC API.

Tableau, when connecting via ODBC, performs a discovery phase in which query the ODBC driver to find out what capabilities it supports.scalar and aggregation functions, date handling, subquery capabilities, available JOIN types, creation of temporary tables, etc. Depending on what the driver declares, it classifies the connection as fully functional, with minor limitations, with significant limitations, or directly unusable.

Relationship between ODBC and JDBC

JDBC vs ODBC

Within the data access ecosystem, ODBC has its natural equivalent in the Java world: JDBC (Java Database Connectivity)Both seek the same goal: to provide a standard for applications to connect to different databases using SQL, but with approaches adapted to their environment.

While ODBC is primarily intended for applications written in C, C++ or other languages ​​that support its API And it is widely used in Windows (although also on other platforms), JDBC is part of the Java ecosystem itself and is cross-platform by definition, as it runs on the virtual machine.

The JDBC architecture is divided into a API layerwhich are the Java interfaces and classes used by developers, and a driver layer which implements these interfaces and communicates with the actual database. There are four types of JDBC drivers: Type 1 (ODBC bridge), Type 2 (native/partial API), Type 3 (network protocol), and Type 4 (100% Java "thin" driver).

The old controller The JDBC-ODBC bridge (Type 1) allowed Java applications to access databases accessible via ODBCIt was useful as a transitional solution, but with There It was discouraged due to performance and complexity, and has ended up disappearing from modern versions of Java.

In JDBC, the connection to a database is built from a URL in a format similar to jdbc::/// More optional properties. For example: jdbc:mysql://localhost:3306/mydatabase. From this URL, the Java DriverManager locates the appropriate driver and opens the connection, similar to how the ODBC Manager selects the driver in the ODBC world.

In terms of practical differences, ODBC and JDBC are distinguished primarily by the language and ecosystem they target.ODBC integrates deeply with Windows and native applications, while JDBC integrates seamlessly with the Java world, supports Java-specific data types, and provides its own utilities like ResultSet for handling results. In certain scenarios, a Type 4 JDBC driver can offer highly competitive performance by eliminating intermediate layers.

Ultimately, the choice between one and the other is determined by the application's technology: Java applications tend to use JDBC; native applications, ODBCIn any case, both represent the same philosophy of standardized and vendor-agnostic access with respect to the database provider.

ODBC remains a a key In the puzzle of data access: it allows programs of all kinds to connect to very different databases through a common API, hides the differences of each engine thanks to its drivers, fits with tools as diverse as Access, Qlik Sense or Tableau and coexists with other standards such as JDBC in the Java world, so if you understand how ODBC works, you're halfway there to moving smoothly through almost any modern database environment.

Compact and repair Access databases
Related article:
How to compact and repair Access databases