SimbaEngine  10.1.17
SimbaEngine SDK C++ API Reference
Simba Technologies Inc.

Major Components

There are three major components of any driver built with the SimbaEngine SDK, which are:

  • SimbaODBC
  • Simba SQLEngine
  • Customer DSII

Each of these components is briefly outlined in the sections below.


This component is responsible for taking care of the ODBC functionality for drivers built with the SimbaEngine SDK. It manages the driver, environment, connection, and statement objects along with their attributes and properties. It also handles conversions between the different data types by calling the SimbaSupport component.

Simba SQLEngine

This component parses the SQL commands that are passed in via SimbaODBC and translates them into an execution plan, then executes the plan against the DSII. The query is translated into an AETree (Algebraic Expression Tree) which represents the query along with its metadata. An ETree (Execution Tree) is generated from the AETree, which is optimized before being executed. If your data store is SQL capable, then the Simba SQLEngine component does not need to be used.

Customer DSII

This component is the custom DSI (DataStoreInterface) implementation that interfaces with your custom data store. Any custom logic needed to talk with your data store, or further optimize queries via Collaborative Query Processing, is implemented here.

Minor Components

Along with these major components, there are also several smaller components:

  • AETree
  • SimbaDSI
  • SimbaDSIExt
  • SimbaSupport

Each of these components is briefly outlined in the sections below.


This component, the AETree (Algebraic Expression Tree), represents a prepared query along with metadata about the query. The AETree is used with the Simba SQLEngine, and will not be used if your data store is SQL capable. The AETree is used during Collaborative Query Processing, allowing for extensive optimization of queries depending on the capabilities of your data store.


This component, the SimbaDSI (DataStoreInterface), is the framework which the Customer DSII is built on. There are interfaces for each object such as driver, environment, connection, statement, etc, however there are also partial implementations that provide most of the needed functionality for your driver. This component acts as the bridge between SimabODBC and the Customer DSII.


This component, the SimbaDSI Extensions, are further implementations of the SimbaDSI that are used with the Simba SQLEngine. If using the Simba SQLEngine, then your Customer DSII will extend this component. If your data store is SQL capable, then the SimbaDSIExt and Simba SQLEngine components do not need to be used.


This component is used for platform specific tasks such as file IO and configuration, as well as data types and conversions, exceptions, and other supporting tasks.