Home How To Online Documentation Support Download Order


SQLAPI++ References

Quick download:

SQLAPI++ Windows

SQLAPI++ Linux



SQLAPI++ Solaris x86


SQLAPI++ Library

SQLAPI++ is a C++ library for accessing multiple SQL databases (Oracle, SQL Server, DB2, Sybase, Informix, InterBase, SQLBase, MySQL, PostgreSQL, SQLite, SQL Anywhere and ODBC). It uses native APIs of target DBMS so applications developed with SQLAPI++ library run swiftly and efficiently. The product also provides a low-level interface that allows developers to access database-specific features. By encapsulating a vendor's API, SQLAPI++ library acts as middleware and delivers database portability. See details on supporting SQL database servers on different platforms:

Server Windows Linux/Unix
Oracle Database Server Supported (OCI) Supported (OCI)
Microsoft SQL Server Supported (SQLNCLI/ODBC, OLE DB, DB-Library) SQLNCLI/ODBC for Linux x86-64, otherwise ODBC driver and connection should be used (FreeTDS, Easysoft,...)
Sybase Supported (Open Client, ASE & ASA) Supported (Open Client, ASE & ASA)
DB2 Supported (DB2 CLI) Supported (DB2 CLI)
Informix Supported (Informix CLI) Supported (Informix CLI)
InterBase/Firebird Supported Supported
SQLBase Supported (CAPI) Supported (CAPI)
MySQL, MariaDB Supported (MySQL C API)  Supported (MySQL C API)
PostgreSQL Supported (libpq) Supported (libpq)
ODBC Supported Supported (iODBC, unixODBC)
Sybase SQL Anywhere
Supported (SQL Anywhere C API)
Supported (SQL Anywhere C API)

Currently SQLAPI++ library supports the following C/C++ compilers:

  • Microsoft Visual C++
  • Embarcadero (Borland) C++
  • GNU GCC C++ compiler
  • Solaris Studio C++ compiler

Why use SQLAPI++?

  • SQLAPI++ directly calls native API's of target DBMSs (unlike ADO which uses OLEDB and/or ODBC intermediate layer). That's why SQLAPI++ is the fastest way to manage you data.
  • No need (vs ADO) to install and configure OLEDB and/or ODBC drivers when developing and distributing your applications.
  • Low-level interface that allows developers to access database-specific features.
  • SQLAPI++ ships with all the sources.
  • Free lifetime support, bugs fixing and new version updates.



Step 1. Connecting to database (and error handling)
Step 2. Executing a simple SQL command
Step 3. Binding input parameters
Step 4. Executing a select query (and fetching result set)
Step 5. Binding LongBinary, LongChar, BLob and CLob data
Step 6. Fetching LongBinary, LongChar, BLob and CLob data
Step 7. Multithreading support and canceling queries

Advanced Examples

Using Oracle REF CURSORs
Using Oracle nested cursors
Fetching records in bulk


29 March 2019

Version of SQLAPI++ library released.

New features:

  • SQL Anywhere: Fixes crash when unimplemented scrollable fetching used (thanks Christian Schmitz).
  • Oracle: Fixed external connection handles attaching (thanks Frank Hilliger).
  • General: sa_strncpy/sa_wcsncpy related fixes (thanks Manuel Baerten).
27 February 2019

Version 4.2.5 of SQLAPI++ library released.

New features:

  • General: Fixed parameter by name searching (thanks Frank Hilliger).
  • SQL Anywhere: Fixed API initialization on Linux/Unix (thanks Christian Schmitz).
  • General: Use safe CRT/LIBC functions when available.
  • SQLite: Fixed default date/time type search option value (thanks Christian Schmitz).
  • General: Added SAException::CommandText() method.
  • General: Fixed STATIC DBMS API loading (thanks Manfred Kubica).
  • SQLServer (OLEDB): Fixed bug with multiple connections.
  • ODBC: API code reorganized.
  • PostgreSQL: Added support for stored procedures.
  • General: Throw SAException instead or assertion when required DBMS API function cannot be loaded.
  • PostgreSQL: Do not destroy the result set returned by function so it's possible to process for example 'return table...' results (thanks Mike Moening).
  • PostgreSQL: Improved function/procedure parameters detection for the current/default schema (thanks Mike Moening).
  • ODBC: Increased the field/parameter length that should be converted to SA_dtString (helps with some buggy drivers, thanks Christian Schmitz).
28 December 2018

Version 4.2.4 of SQLAPI++ library released.

New features:

  • SQLServer (OLEDB): API code reorganized.
  • SQLServer (ODBC): API code reorganized.
  • SQLBase: API code reorganized.
  • Interbase: API code reorganized.
  • SQL Anywhere: API code reorganized.
  • DB2: API code reorganized (special "STATIC" value for "DB2CLI.LIBS" option).
  • Informix: API code reorganized (special "STATIC" value for "INFCLI.LIBS" option).
  • Oracle: OCI8 code reorganized (special "STATIC" value for "OCI8.LIBS" option).
  • Oracle: Added support for Implicit Results (thanks Georgiy Pakhutin).
  • Oracle: Do not read timezone data for for the date/type types without it because this is too slow (thanks Sven REUTTER).
  • Sybase: API code reorganized (special "STATIC" value for "SYBCT.LIBS" option).
  • CubeSQL: API code reorganized (special "STATIC" value for "CUBESQL.LIBS" option).
  • PostgreSQL: API code reorganized (special "STATIC" value for "LIBPQ.LIBS" option).
  • SQLite: Added code to detect if the field in the result set is required (thanks Karoly Harmath).
  • SQLite: API code reorganized (special "STATIC" value for "SQLITE.LIBS" option).
  • MySQL: API code reorganized (special "STATIC" value for "MYSQL.LIBS" option).
  • General: Sources split.
  • SQLServer (ODBC): Fixed multi-result command procesing (Brendan Wilson).
  • ODBC: Fixed input string buffer processing (thanks Alexander Goldnik).
  • SQLServer (ODBC): Fixed bug with stored procedures have the output parameters and result sets with LOB fields (thanks Mike Moening).
20 September 2018

Version 4.2.3 of SQLAPI++ library released.

New features:

  • General: Added SAConnection::GetNextCommand method (enumerates SACommand-s).
  • General: SA_USE_STL build option uses a map for input parameter names (improved performance for parameter by name searching).
  • CubeSQL: Fixed setAutoCommit method (thanks Christian Schmitz).
  • ODBC: Fixed input buffer length for SA_dtString (thanks Christian Schmitz).
  • Sybase: Fixed connection problem related to OCS error messages 5701 and 5704 (thanks CK Yang).
  • General: Optimized parameters parsing/creation algorithm for numeric binding parameter names.
  • PostgreSQL: RefCursor implementation (thanks Danielle Gutfinger).
  • CubeSQL: Added cubeSqlAPI::SetTraceFunction method (thanks Christian Schmitz).
  • CubeSQL: Use GetUTF8Chars instead of GetMultiByteChars for Unicode SQLAPI (thanks Christian Schmitz).
5 April 2018

Version 4.2.2 of SQLAPI++ library released.

New features:

  • SQLServer: Support for Microsoft ODBC Driver 17 for SQL Server on Windows.
  • ODBC: Fixed binding terminated null character (thanks Jarek Karciarz).
  • SQL Anywhere: Support for API version 1 (thanks Christian Schmitz).
  • InterBase: Fixed bug for modern InterBase versions without older XSQLVAR_V1 and SQLDA_VERSION1 support.
  • InterBase: Fixed bug with boolean type differences for InterBase and Firebird.

See Full History...

Last modified: 29 March 2019