You can use the SimbaEngine X SDK to build custom drivers for ODBC, JDBC, OLE DB, and ADO.Net applications. Depending on the interface standard that your driver supports, you can develop the driver in C++, Java, or C#.
The SimbaEngine X SDK provides many different implementation options for developing your custom driver. For example, you can develop an ODBC driver in C++ using the DSI API. You can also develop an ODBC driver in Java using the Java DSI API and the JNI bridge. Or, you can develop a custom JDBC driver for data stores that do not support SQL, and implement the driver for either a local or a client-server deployment.
Note:
This guide explains how to build a driver for data stores that do not support SQL. If you want to build a driver for data stores that support SQL, see Developing Drivers for SQL-capable Data Stores.
The following table shows the possible types of custom drivers you can build with the SimbaEngine X SDK, and the components and APIs required for each. The table includes options for local and remote (client/server) deployments, and for SQL-enabled and non-SQL-enabled data stores. The Sample Driver(s) column lists the sample driver(s) that provide a working example of your chosen implementation option.
Note:
C:\Simba Technologies\SimbaEngineSDK\10.0\Examples\Source.
Driver Type | Language | Data Store Type | Sample Driver(s) | SimbaEngine X SDK Component(s) |
---|---|---|---|---|
Custom ODBC driver |
C++ |
SQL, Local |
Ultralight |
DSI API |
Custom ODBC driver |
C++ |
SQL, Remote |
Ultralight + |
DSI API |
Custom ODBC driver |
C++ |
Not SQL capable, Local |
Quickstart |
DSI API + SQL Engine |
Custom ODBC driver |
C++ |
Not SQL capable, Remote |
Quickstart + |
DSI API + SQL Engine |
Custom ODBC driver |
Java |
SQL, Local |
JavaUltraLight |
Java DSI API + JNI DSI |
Custom ODBC driver |
Java |
SQL, Remote |
JavaUltraLight + |
Java DSI API + JNI DSI |
Custom ODBC driver |
Java |
Not SQL capable, Local |
JavaQuickstart or JavaQuickJSON |
Java DSI API + JNI DSI + SQL Engine |
Custom ODBC driver |
Java |
Not SQL capable, Remote |
JavaQuickstart + |
Java DSI API + JNI DSI + SQL Engine |
Custom ODBC driver |
C# |
SQL, Local |
DotNetUltraLight |
.NET DSI API + CLI DSI |
Custom ODBC drive |
C# |
SQL, Remote |
DotNetUltraLight + SimbaServer |
.NET DSI API + CLI DSI |
Custom ODBC driver |
C# |
Not SQL capable, Local |
DotNetQuickstart |
.NET DSI API + CLI DSI + SQL Engine |
Custom ODBC driver |
C# |
Not SQL capable, Remote |
DotnetQuickstart + SimbaServer |
.NET DSI API + CLI DSI + SQL Engine |
Custom JDBC driver |
Java |
SQL, Local |
JavaUltraLight |
Java DSI API |
Custom JDBC driver |
Java |
SQL, Remote |
JavaUltraLight + |
Java DSI API + JNI DSI |
Custom JDBC driver |
Java |
Not SQL capable, Local |
JavaQuickJson |
Java DSI API |
Custom JDBC driver |
Java |
Not SQL capable, Remote |
JavaQuickstart + |
Java DSI API + JNI DSI + SQL Engine |
Custom ADO.NET driver |
C# |
SQL, Local |
DotNetUltraLight |
.NET DSI API |
Custom OLE DB driver |
C++ |
Not SQL capable, Local |
Quickstart |
DSI API + SQL Engine |
The following section provides more details about the information in the table above.
The programming language you use to write the DSII depends partly on the interface standard you need to support. The supported combinations of programming language and interface standard are shown in the table above.
Example:
To build a local driver for ODBC applications, you can write your DSII in the following languages:
To build a local driver for JDBC applications, you must write your DSII in Java. Or, you can deploy the JDBC client to support the JDBC applications and implement the SimbaServer in Java, C++, or C#.
To build a local driver for ADO.NET applications, you must write your DSII in C#.
This section explains the different ways you can leverage the SimbaEngine X SDK components in each of the supported programming languages.
For C++ driver development, you have the following options:
In the above cases, you can link against the C++ SQLEngine to access non-relational data stores.
For Java driver development, you have the following options:
In the above cases, you can link to the Java SQLEngine to access non-relational data stores.
For C# development, you have the following options:
The SimbaEngine X SDK provides you a number of different optional components for building and deploying a custom driver for a wide variety of solutions.
If your data store is SQL-capable, you do not need to use the SQLEngine. If your data store is not SQL-capable, link your driver to the Simba SQLEngine libraries to provide the SQL processing needed by ODBC or JDBC. The SQL Engine is available in the C++ and Java SDKs.
Local deployments are typically used in the following scenarios:
Client-Server deployments are best when software runs on a server and users access it from their own machines. Your custom driver, using SimbaServer, runs on the network server. SimbaClient is installed on user machines to allow applications such as Excel and Tableau to access your remote data store.