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 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


18 October 2014

Version 4.1.4 of SQLAPI++ library released.

New features:

  • MySQL: Added support for libmysqlclient.so.18 (thanks Christian Schmitz).
  • MySQL: Fixed user function execution when there is no any input parameter (thanks Sebastian Hempel).
  • PostgreSQL: Fixed the connection error text for SAException (thanks Jesus Malo Poyatos).
  • SQLServer: OLEDB+ODBC API, ignore unknown data types (set field value to NULL).
  • General: Added SAException::NestedException() and SAException::ErrMessage() methods.
  • MySQL: Added SSL parameter used with mysql_ssl_set (thanks Christian Schmitz).
  • General: Added checking the memory allocation result and throwing an exception when allocation fails.
  • General: Fixed problem with IPv6 address using in MySQL and PostgreSQL connection strings (thanks Sridhar Gollapudi).
  • Informix: Fixed long/lob binding (thanks Christian Schmitz).
  • General: Fixed millisecond calculation in SADateTime::GetTimeValue(SYSTEMTIME &st) method (thanks Jocelyn Pelletier).
  • ODBC: Fixed procedure support for sources without schema support (thanks Joris Koster).
  • SQLServer: OLEDB API, added support for ISQLServerErrorInfo (thanks Georgiy Pakhutin).
  • SQLServer: OLEDB API, added support for SACommand::setBatchExceptionPreHandler (thanks Georgiy Pakhutin).
  • General: Added pAddlData parameter for SACommand::setBatchExceptionPreHandler (thanks Georgiy Pakhutin).
3 May 2014

Version 4.1.3 of SQLAPI++ library released.

New features:

  • SQLite: Added ReadLongOrLob support (thanks Jeremy A. Ford).
  • General: Fixed multi-byte(including UTF-8) to Unicode converter.
  • General: Added initial support for SQL Anywhere.
  • SQLite: Added sqlite3_update_hook API function.
  • MySQL: Added 'MYSQL_SECURE_AUTH' connection option (thanks Christian Schmitz).
  • Oracle: Fixed LONG data type reading/writing with Unicode version (thanks Jimmy Michiels).
  • SQLite: Optimized integer data reading (thanks Christian Schmitz).
  • General: Use -fPIC(g++)/-KPIC(Solaris Stidio) compilation option even for the static 64-bit library (thanks Christian Schmitz).
  • Oracle: Fixed crash if using Oracle database with LDAP configuration and OpenLDAP (thanks Alfred Gebert).
  • PostgreSQL: Do not use utf8 encoding for the error messages when the connection is bad (thanks jonathan.gonzalez at kepler.com.mx).
  • ODBC: Fixed procedure parameter parsing (thanks Joris Koster).
  • ODBC: Fixed SANumeric data processing (thanks Max Lipshits).
  • ODBC: Added SACommand option "ODBCUseSQLGetData" (use SQLGetData for any result set fields).
  • ODBC: Use SQLGetData for any field in the result set after long/LOB field.
  • General: Fixed empty string data returned with SAString::GetUTF16Chars (thanks Christian Schmitz).
30 October 2013

Version 4.1.2 of SQLAPI++ library released.

New features:

  • DB2: Use SQL_SSHORT instead of SQL_BIT data binding for SA_dtBool parameters (thanks Frank Hilliger).
  • MySQL: Added per-connection query execution mutex+lock.
  • MySQL: Added mysql_library_init call that resolves thread bug (thanks Michael Hufer and Frank Hilliger).
  • ODBC: Fixed the first character truncation of long/clob text field on Linux/Unix.
  • General: Renamed all names with suffix Win32 to Windows one.
  • ODBC: Added build option to configure SQLWCHAR type on Linux/Unix (thanks Christian Schmitz).
  • DB2: Fixed 64-bit SQLLEN/SQLPOINTER and related types data length (thanks Frank Hilliger).
  • PostgreSQL: Fixed long binary/blob binding (thanks slv1970 at me.com).
  • General: Addded ability to trace the real query text sent to DBMS API (experimental, SAGlobals::SetTraceFunction).
24 May 2013

Version 4.1.1 of SQLAPI++ library released.

New features:

  • General: SAString method GetUTF16Chars, GetUTF16CharsLength, SetUTF16Chars available in not-Unicode version.
  • SQLServer: Added support for Microsoft ODBC Driver 11 for SQL Server on Linux.
  • Informix: Fixed bug with data type conversion (thanks Jay Sridhar).
  • InterBase: Fixed the 64-bit DLL name (thanks Junior Tcheho).
  • SQLServer: Fixed problem with binding result set fields after any long/LOB one.
  • General: Fixed ODBC/CLI scrollable cursor fetching with row prefetched > 1 (DB2, Informix, ODBC, MSSQL affected).
  • Oracle: Added "NLS_CHAR" connection option.
  • PostgreSQL: Fixed long binary/blob binding (thanks Yan Dai).
  • General: Fixed 'SANumeric::operator sa_uint64_t()' for Windows (thanks Junior Tcheho).
  • DB2: Removed assertion when SQLGetDescRec is not exported by DB2 ODBC/CLI library (thanks Jesús Malo Poyatos).
  • DB2: Added workaround for incorrect 64-bit SQLDescribeCol (thanks Jesús Malo Poyatos).
  • General: Added 'SetCursorName' SACommand option for ODBC/CLI API-s that uses SQLSetCursorName function (thanks Christian Schmitz).

See Full History...

Last modified: 17 October  2014