Simba Technologies
Simba Technologies

SimbaEngine X SDK 10.1.11
Developing Drivers for Data Stores Without SQL

Frequently Asked Questions

This section answers the questions that are commonly asked by people who are new to the SimbaEngine X SDK product and technology. For a more detailed FAQ, see the Testing and Troubleshooting section of this guide.

What Platforms does the SimbaEngine X SDK Support?

For information about the supported versions of Windows, Unix, Linux, and macOS, plus a list of supported compilers, see Supported Platforms.

What is ODBC?

ODBC stands for Open Database Connectivity (ODBC). It is a C-language open standard Application Programming Interface (API) for accessing relational databases.

In 1992, Microsoft contracted Simba to build the world's first ODBC driver; SIMBA.DLL, and standards-based data access was born. Using ODBC, you can access data stored in many common databases. A separate ODBC driver is needed for each database to be accessed. An ODBC Driver Manager is also needed. This is supplied with the Windows operating system, and is available commercially and as open source on Unix and Linux.

What is MDAC?

MDAC, or Microsoft Data Access Components, are runtime components that are shipped with the Windows operating system. These components contain interfaces for ODBC, OLEDB and ADO, as well as the ODBC drivers for Microsoft’s database-related products.

The MDAC SDK is available from the Microsoft Developer Network (MSDN) and can be downloaded from:

In newer versions of Windows (Vista & 7), MDAC is now called Windows DAC. For more information, see

What Third-Party Components Does the SimbaEngine X SDK Use?

For information on the third-party components used by the SimbaEngine X SDK, see Third Party Licenses.


I am new to ODBC. How does my application work with an ODBC Driver?

ODBC-enabled applications always access ODBC Drivers through the Driver Manager that is installed on the operating system. An instance of the Driver Manager is created for each ODBC application. The application will specify to the Driver Manager which ODBC Driver to use when establishing a connection. The Driver Manager will then load the appropriate ODBC Driver. Once the ODBC Driver is loaded, the Driver Manager will map all incoming requests to the appropriate functions exported by the ODBC Driver.

To interact with a Driver Manager, ODBC-enabled applications will request the following three ODBC handles:


Represents an environment handle. Every instance of an ODBC driver will be associated with a single environment handle.


Represents a connection handle. Connections are created using one of the following three ODBC methods: SQLConnect(), SQLBrowseConnect(), SQLDriverConnect(). Every connection handle is associated with its parent environment handle.


Represents a statement handle. Every statement that is to be executed via ODBC will be associated with its own statement handle. Every statement handle is associated with its parent connection handle.

The Driver Manager interacts with an ODBC Driver in much the same way. The Driver Manager will request the handles for the environment, connection and statement. All calls made from the ODBC-enabled application to the Driver Manager require the Driver Manager allocated handle and will be implemented as follows:

  1. Map incoming Driver Manager allocated handle to an instance representing the handle.
  2. Call the ODBC Driver associated with the instance using the ODBC Driver associated handle.

What is ICU?

ICU stands for the International Components for Unicode (ICU) libraries. These libraries provide Unicode handling mechanisms on which the SimbaODBC components are dependent. These libraries are distributed under an open source license at:

ICU is freely available from:

What is SimbaODBC?

SimbaODBC is a component part of SimbaEngine for developing full-featured, optimized ODBC 3.80 drivers on top of any SQL-enabled data source. SimbaODBC provides extensibility for JDBC, OLE DB as well as ADO.NET connectivity. SimbaODBC simplifies exposing the query parsing, query execution and data retrieval facilities of your SQL-enabled data source.

What do the Different Components of SimbaODBC do?

SimbaODBC ships with a number of static libraries. You will link these libraries into the code you write to communicate with an underlying SQL-92 enabled data store.

What SQL Conformance Level Does SimbaEngine support?

ODBC specifies three levels of SQL grammar conformance: Minimum, Core and Extended. Each higher level provides more fully-implemented data definition and data manipulation language support. SimbaEngine SDK fully supports Core DML SQL grammar, as well as many Extended grammars.


Related Links

5 Day Guides at