Below is the complete release notes log:

5.3.1
April 15, 2024
General MariaDB MySQL Oracle SQLServer(OLEDB)
New Features
  • Oracle: Scrollable result set fetching optimization
  • MySQL/MariaDB: Reset the connection state after SAException is thrown (thanks Bertram Kowalewski)
Bug Fixes
  • MySQL/MariaDB: Fixed API loading assertion for some unimportant/deprecated function (thanks Brad Blankenburg)
  • General: Fixed the string format used for the SA_dtInt32/SA_dtUInt32 input parameters (thanks Florian Apolloner)
  • SQLServer(OLEDB): Fixed infinite loop when writing long/LOB (thanks Jakub Zakrzewski)
  • General: Fixed the string format used for SA_dtInt32/SA_dtUInt32 value (thanks Christian Schmitz)
5.3.0
December 30, 2023
General Informix MariaDB Oracle SQL Server SQLite
New Features
  • Oracle: Removed the code that changed the parameter/field character set form for Unicode version (thanks Jakub Zakrzewski)
  • SQL Server (ODBC): Added "SQL_SOPT_SS_DEFER_PREPARE" command option (changed to SQL_DP_ON by default, thanks Christian Maurer)
  • General: Code optimization according cppcheck detections
  • General: SACommand::RowsAffected returns sa_uint64_t instead of long
  • General: Replaced 'long' by 'int' type in SAInterval class
  • General: GetClientVersion/GetServerVersion methods return int instead of long
  • General: SA_dtLong/SA_dtULong data types and related methods replaced by SA_dtInt32/SA_dtUInt32 (old names are still here but operate with sa_int32_t/sa_uint32_t values)
  • General: Added SAPI::ThreadInit and SAPI::ThreadEnd methods
Bug Fixes
  • SQLite: Fixed crashing when an empty SQL statement is passed (thanks Christian Schmitz)
  • Informix: Fixed bug with rows prefetching (thanks Jesús Malo Poyatos)
  • MariaDB: Fixed ::IsAlive method detects the server connection lost (thanks Tennessy Tan)
5.2.6
October 05, 2023
General ODBC SQLServer (ODBC) SQLite
New Features
  • ODBC: Do not throw API functiton cannot be load exception if it is not used by SQLAPI++ (thanks Christian Schmitz)
Bug Fixes
  • SQLServer (ODBC): Fixed possible memory leak with LOB parameters (thanks Christian Maurer)
  • SQLite: Fixed '\0' character processing inside the text data (thanks Peter Klotz)
  • General: Fixed NUMERIC(X) data mapping into SA_dtInt64 (thanks Peter Klotz)
  • SQLServer (ODBC): Fixed CLOB data reading on Linux/Unix (thanks Peter Klotz)
5.2.5
September 01, 2023
General InterBase Oracle PostgreSQL SQLServer (ODBC) SQLServer (OLEDB)
New Features
  • General: Added C binding functions sqlapi_rows_affected and sqlapi_close_command
Bug Fixes
  • SQLServer (ODBC): Fixed ::setAsCLob data binding on Linux/Unix (thanks Peter Klotz)
  • InterBase: Fixed 'INSERT INTO ... RETURNING ...' output data reading for Firebird 3/4 (thanks Brian Harper)
  • Oracle: Fixed CHAR procedure input only parameters processing (thanks Xiumin Wang)
  • General: Fixed possible exception thrown in SAConenction destructor (thanks Ralph Dagdag)
  • PostgreSQL: Fixed the server login error message encoding (thanks Björn Eggstein)
  • General: Fixed the crash when a wrong exponential string used with SANumeric (thanks Christian Schmitz)
  • General: Fixed the field "by name" order for he SA_USE_STL=1 build option (thanks Santiago Núñez)
  • SQLServer (OLEDB): Fixed the memory leak because of IDBDataSourceAdmin interface is not released on a connection error (thanks Oscar Garcia​)
5.2.4
April 29, 2023
General DuckDB MariaDB Oracle SQL Server SQLServer (OLEDB) Sybase
New Features
  • SQLServer (OLEDB): For MSOLEDBSQL19 translate option "SSPROP_INIT_ENCRYPT" values "VARIANT_TRUE"/"VARIANT_FALSE" into "yes"/"no" (thanks Georgiy Pakhutin)
  • DuckDB: The latest API version supported now
  • General: Added SA_Client_Last, code cleanups (thanks Christian Schmitz)
Bug Fixes
  • General: Fixed memory leaks related to SACommand fields map (thanks Gilles Vollant and Jonathan Gonzalez)
  • MariaDB: Fixed copy/paste issue (thanks Gilles Vollant)
  • SQL Server (ODBC): Fixed memory leak with "SQL_COPT_SS_ACCESS_TOKEN" option (thanks Oscar Garcia)
  • Oracle: Fixed cursor leak (thanks Frank Hilliger and Thomas Oswald)
  • SQL Server (ODBC): Fixed possible multi-thread issue with the connection handle allocation (thanks Kha Thach)
  • General: Fixed bug with the fields describing (thanks Christian Schmitz)
  • Sybase: Fixed an infinite loop bug when fields described (thanks Maureen Lim​)
5.2.3
December 29, 2022
General Informix ODBC Oracle Sybase
New Features
  • General: Added EXPERIMENTAL .NET wrapper (C++/CLI, MSVS only, requires new SA_USE_CLR=1 build option)
  • Sybase: Added CS_SEC_SERVERPRINCIPAL option, network authentication is used when an username is empty
  • General: Use std::map for searching the SAField by name (SA_USE_STL=1 build option required)
  • Informix: Create an automatic field name when Informix driver cannot do this (thanks Dirk Hellmann)
Bug Fixes
  • ODBC: Fixed the procedure parameters describing for drivers without schema support (thanks Ruedi Gloor)
  • General: Fixed SAGlobals::Initialize() and SAGlobals::UnInitialize() for a new DBMS client (thanks Maureen Lim​)
  • Oracle: Fixed bug with scrollable result set prefetching and LOB fields (thanks Michael Klein)
5.2.2
September 15, 2022
General Oracle SQLServer (ODBC)
New Features
  • SQLServer (ODBC): Added ability to pass a string for "SSPROP_INIT_ENCRYPT" option (thanks Jan Peeters)
  • General: AIX build by g++ changes (thanks Paul Caswell)
Bug Fixes
  • Oracle: Fixed bug with RefCursor processing (thanks Xiumin Wang)
  • Oracle: Fixed ::Open(), ::IsOpened(), ::Close() methods for correct OCIStmtPrepare2 using (thanks Frank Hilliger)
  • SQLServer (ODBC): Fixed multiple result sets processing when an error raised in between
  • Oracle: Fixed unknown Oracle error status processing (thanks Christian Maurer)
5.2.1
June 28, 2022
SQLServer (ODBC)
Bug Fixes
  • SQLServer (ODBC): Fixed date/time value processing bug (thanks Gilles Vollant)
5.2.0
June 17, 2022
General MySQL
New Features
  • General: Added a separate client for MariaDB connection
  • General: Removed absolute 'struct timeb' from SADateTime
  • General: Removed old compiler support (C99 and above required now)
Bug Fixes
  • MySQL: Fixed pre-connection handler can deal with allocated DB handles (thanks Balazs Varga)
5.1.9
March 08, 2022
General MySQL Oracle SQL Server SQLServer (OLEDB)
New Features
  • General: Added SA_USE_PTHREAD_FOR_ATOMIC build option (required for using SAMutex instead of <atomic> for thread safe SAString data buffer on Unix/Linux)
  • SQLServer (OLEDB): MSOLEDBSQL19 driver supported (thanks Björn Eggstein)
  • SQLServer (OLEDB): Added SSPROP_INIT_MULTISUBNETFAILOVER connection option
  • Oracle: Use OCIStmtPrepare2 instead of OCIStmtPrepare when available (thanks Frank Hilliger)
  • Oracle: Added ability to prefetch LONG fields with options "UseLongPrefetchCache" and "LongPrefetchCachePieceSize" (thanks Pawel Jasinski)
  • MySQL: Compatible prefix in the server version info is ignored now (thanks Frank Hilliger)
  • Oracle: Added OCI_ATTR_DEFAULT_LOBPREFETCH_SIZE / OCI_ATTR_LOBPREFETCH_SIZE / OCI_ATTR_LOBPREFETCH_LENGTH parameters (thanks Pawel Jasinski)
Bug Fixes
  • MySQL: Fixed an incorrect client version detection with the latest MariaDB client package (thanks Frank Hilliger)
  • General: Fixed SAValueRead::asString() format used for 64-bit integers and Borland C++ (thanks Andrew Tsirkin)
  • SQL Server: Fixed SAParam::setAsNull() can be used without defining the data type (thanks Jacob Pedersen)
5.1.8
December 31, 2021
General CubeSQL InterBase ODBC SQL Server
New Features
  • ODBC: Added odbcAPI::SetMessageCallback method that allows to log API function SQL_SUCCESS_WITH_INFO results
  • SQL Server (ODBC): Added ssNCliAPI::SetMessageCallback method that allows to log API function SQL_SUCCESS_WITH_INFO results
  • General: Added SA_DISABLE_ATOMIC_HEADER build option
  • General: Default double conversion precision decreased from 17 to 15 (thanks Frank Hilliger)
  • CubeSQL: 'DOWNLOAD' command supported (thanks Christian Schmitz)
Bug Fixes
  • InterBase: Fixed NUMBER/DECIMAL mapping into SA_dtNumeric (thanks Christian Schmitz)
5.1.7
October 15, 2021
General Oracle SQLite
New Features
  • General: Added SA_STR_SAFE_CONVERT_DATA build option to make SAString utf8/utf16/wide char/multi-byte conversion thread safe (thanks Peter Klotz)
  • General: Improved SAString references using for non-Windows OS (thanks Peter Klotz)
Bug Fixes
  • Oracle: Fixed character field length overflow (thanks Peter Klotz)
  • Oracle: Fixed OCI_ATTR_CHARSET_FORM option using (thanks Peter Klotz)
  • SQLite: Fixed "SQLiteSkipInitialization" option caching (thanks Gilles Vollant)
5.1.6
September 15, 2021
General Oracle
Bug Fixes
  • General: Fixed SAString references using for non-Windows OS (thanks Peter Klotz)
  • Oracle: Fixed bug with connection/session pool using (thanks Peter Klotz)
5.1.5
September 01, 2021
General InterBase MySQL Oracle SQLite
New Features
  • SQLite: Cache "SQLiteSkipInitialization" option value for using at un-initialization function (thanks Heribert Scharnagl)
  • General: Added SACommand::FieldExists method (thanks Santiago Núñez)
Bug Fixes
  • InterBase: Fixed default LOB buffer size (0xFFFE instead of 0xFFFF) to avoid LOB writing troubles (thanks Paul Mathers)
  • Oracle: Fixed memory leaks when ouput LOB parameters used (thanks Asha Baby)
  • MySQL: Fixed assert() used at myAPI::LoadAPI instead of SALibraryFunctionAssert (thanks Christian Schmitz)
  • General: Fixed time string parsing with SADateTime::ParseString method (thanks Christian Schmitz)
5.1.4
April 18, 2021
General DB2 MySQL PostgreSQL SQL Server SQLite
New Features
  • General: Added EXPERIMENTAL DuckDB support
  • General: New build option SA_BUILD_OPTIONS describes the file name with options
  • SQLite: Also use "SQLiteSkipInitialization" option with sqlite3_shutdown (thanks Heribert Scharnagl)
  • General: SAPI un-initialization uses the context related options (thanks Jacob Pedersen)
  • General: Added SADateTime::ParseString(const SAChar*) method
  • General: SACommand::Param(<name>) also searches for '@<name>' stored procedure parameter name now
  • General: Default(hidden) SAPI instance un-initializing reorganized (now it's not automatically destroyed after SAGlobals::Initialize() called)
  • PostgreSQL: Added PQtransactionStatus native API function
  • MySQL: Added "Utf8CharacterSetName" connection option ("utf8" used by default)
  • PostgreSQL: Improved the procedure/function parameters detection by using 'search_path' (thanks Dirk Hellmann)
  • SQL Server (OLEDB): Added 'UseStreamForLongOrLobParameters' parameter option
Bug Fixes
  • PostgreSQL: Fixed cursor parameter/field processing (thanks Georgiy Pakhutin)
  • SQLite: Fixed possible memory overlap with multiple commands statement (thanks Jakub Zakrzewski)
  • DB2: Fixed problem with DECFLOAT data fetching (thanks Wenmin Zhang)
  • SQL Server (ODBC): Fixed bug with fetching DECIMAL(p,0) when p > 19 (thanks Fabiano Cainelli)
  • MySQL: Fixed ::IsAlive method detects the server connection lost with modern MariaDB versions (thanks Johannes Lipp)
5.1.3
December 15, 2020
General DB2 Informix MySQL ODBC PostgreSQL SQL Server Sybase
New Features
  • PostgreSQL: Added "UsePrepared" command option - the initial implementation of the prepared statement
  • General: Added SAGlobals::doubleConvertPrecision() methods, default precision increased from 15 to 17 (thanks Tim B)
  • General: Added SAGlobals::Initialize() and SAGlobals::UnInitialize() methods
  • Sybase: Set also per-connection error structure (SA_USERDATA) when sybExternalConnection attached (thanks Frank Hilliger)
  • DB2: Always use SA_dtNumeric for DECIMAL type because of bugs in some driver versions (thanks Frank Hilliger)
  • Informix: Updated headers to the verison with 64-bit SQLLEN/SQLULEN for 64-bit platforms (thanks Christian Schmitz & Massimo Valle)
  • MySQL: Added "IgnoreFieldBinaryFlag" option
  • ODBC: Ignore errors for SQLSetStmtAttr with SQL_ATTR_ROWS_FETCHED_PTR (thanks Christian Schmitz)
Bug Fixes
  • SQL Server (OLEDB): Fixed SAConnection::ClientVersion result (thanks Georgiy Pakhutin)
5.1.2
September 24, 2020
General CubeSQL MySQL ODBC SQL Server
New Features
  • CubeSQL: Added cubesql_affected_rows and cubesql_last_inserted_rowID API functions (thanks Christian Schmitz)
  • MySQL: Use 'utf8mb4' Unicode character set instead of 'utf8' (thanks Karoly Harmath)
  • SQL Server (OLEDB): Connection string can be extended with provider specific options list
Bug Fixes
  • ODBC: Fixed the parameter precision bug for some SAParam::setAsNull() calling variants (thanks Thomas Oswald)
  • General: Fixed some SADateTime initialization variants (thanks Jesús Malo Poyatos, Georgiy Pakhutin)
  • ODBC: Added extra spaces used in a query to execute a stored procedure to fix troubles with Oracle driver (thanks Thomas Oswald)
5.1.1
July 24, 2020
General ODBC Oracle SQLServer (ODBC)
New Features
  • SQLServer (ODBC): Omit using LONG field size becasue of possible bug when UTF-8 locale used at the client side (thanks Santiago Núñez)
Bug Fixes
  • Oracle: Fixed the bug with VARCHAR2 output parameter (thanks Gavin Glynn)
  • General: Fixed MinGW build for modern WINAPI headers (thanks Ruud Hoogers)
  • ODBC: Fixed the input parameter column size for the text data (thanks Floor Goddijn)
5.1.0
June 10, 2020
General MySQL ODBC Oracle SQL Server
New Features
  • General: Introduced C binding functions
  • MySQL: Added "MYSQL_OPT_SSL_MODE", "MYSQL_OPT_TLS_VERSION"
  • MySQL: MySQL headers updated, for older compilers those require old headers the build option SA_USE_OLD_MYSQL_H added
  • SQL Server (OLEDB): Implemented SACommand::FetchPos
  • ODBC: Added "ODBCOmitSQLFreeStmt" connection option (thanks Patrick Bangert)
Bug Fixes
  • General: Fixed SAString::FormatV for broken va_copy in RAD Studio 10.3
  • General: Fixed procedure parameter position using when SA_USE_STL=1 build option defined
  • General: Fixed some compilation warnings (thanks Gilles Vollant)
  • Oracle: Fixed IN OUT CHAR parameters processing (thanks Jason Formby)
  • Oracle: Fixed IN OUT LOB parameters processing (thanks Jason Formby)
5.0.6
March 26, 2020
General ODBC Oracle SQL Server
New Features
  • Oracle: Implemented OCI session pooling (thanks Christian Maurer)
  • General: Modified SAString(SAChar ch, size_t nRepeat) to avoid the 'call of overloaded ... is ambiguous' problem with g++ (thanks David Clarke)
Bug Fixes
  • ODBC: Fixed passing negative 64-bit integers if "ODBCUseNumeric" = "false" (thanks Christian Schmitz)
  • General: Fixed small binary data writing bug (thanks Jürgen Thoma)
  • SQL Server (OLEDB): Fixed negative 64-bit integers reading (thanks Ralph Spaulding)
5.0.5
February 22, 2020
General
Bug Fixes
  • General: Fixed bug with global(default) SAPI instance (thanks Roman Tatkin)
5.0.4
February 20, 2020
General SQL Server SQLite
New Features
  • General: Default(implicitly used) SAPI object automatically de-initialized when the latest SAConnection unlinked
Bug Fixes
  • SQLite: Fixed ::Close() method (thanks Jason Formby)
  • General: Fixed SAValueRead::asNumeric() for SA_dtInt64/SA_dt_UInt64 (thanks Jason Formby)
  • General: Fixed SAConnection::GetNextCommand method (thanks Jason Formby)
  • SQL Server: Fixed bug with global(default) SAPI instance used for OLEDB or ODBC API (thanks Sergii Gulyk)
  • General: Fixed bug at SADateTime(const struct timeval &) constructor (thanks Henri Gourgue)
5.0.3
December 27, 2019
General Informix Oracle SQL Server SQLite
New Features
  • Informix: Added "UseIDSISAMERRMSG" (false by default, thanks Dirk Hellmann)
  • SQL Server (OLEDB): Added "SSPROP_AUTH_MODE" and "SSPROP_AUTH_ACCESS_TOKEN" connection options
  • SQL Server (ODBC): Do not add "Trusted_Connection" option when "Authentication" one provided with the connection string
  • SQL Server (ODBC): Added SQL_COPT_SS_ACCESS_TOKEN connection option
  • SQLite: Added API related option "SQLiteSkipInitialization"
  • SQLite: Added API functions sqlite3_config, sqlite3_initialize and sqlite3_shutdown
  • General: Added SADateTime::hasDate and SADateTime::hasTime methods
Bug Fixes
  • Oracle: Fixed SAConnection::isConnected method returns true even if a long connection procedure fails later in another thread (thanks Jason Formby)
  • General: Fixed possible memory leak in SAException::operator= (thanks Georgiy Pakhutin)
  • General: Fixed possible crashing at SAConnection::GetNextCommand (thanks Christian Schmitz)
5.0.2
November 15, 2019
General CubeSQL MySQL ODBC Oracle SQL Server SQLBase
New Features
  • SQLBase: Added option "SQLBaseUseDoubleForDecimal"
  • Oracle: Alwasy use timezone information when read date/time values with timezone
  • MySQL: Added version 8.x mysqlclient name into default library list (thanks Leo Namuco​)
  • General: Removed SAOptions::Option(int) method but added SAOptions::OptionName(int) one (thanks Christian Schmitz)
Bug Fixes
  • General: Fixed SAOptions::Option method bug, the problem with thread-safe execution (thanks Peter Klotz)
  • CubeSQL: Fixed "SHOW..." command execution (thanks Christian Schmitz)
  • MySQL: Fixed environment initialization flag initial value (thanks Peter Klotz)
  • ODBC: Fixed error message generation for Unicode Linux/Unix version (thanks Christian Schmitz)
  • MySQL: Fixed "UseMySQLKillQueryConnection" option processing
  • SQL Server (ODBC): Fixed bug with string truncation in Unicode version for Linux (thanks Jürgen Thoma)
  • General: Fixed SAPI initialization related memory leak (thanks Baerten Manuel)
  • SQL Server (ODBC): Fixed API loading on Linux
  • CubeSQL: Fixed crashing when the result set fields described without command executed (thanks Christian Schmitz)
5.0.1
October 17, 2019
General CubeSQL MySQL PostgreSQL Sybase
New Features
  • CubeSQL: Added cubeSqlAPI::Check method
Bug Fixes
  • General: Fixed SAPI/SAConnection loading (thanks Jacob Pedersen, Baerten Manuel and Jian Zhang)
  • General: Fixed SAPI/SAConnection destroying (thanks Baerten Manuel)
  • General: IBM XLCbuildscript fixes (thanks Frank Hilliger)
  • MySQL: New "UseMySQLKillQueryConnection" option fixes SACommand::Cancel problem (thanks Frank Hilliger)
  • Sybase: Fixed crash after connection failed
  • PostgreSQL: Fixed API loading (thanks David Bárcena Hilario)
5.0.0
September 20, 2019
General CubeSQL DB2 Informix MySQL ODBC Oracle SQL Anywhere SQL Server
New Features
  • CubeSQL: Added 'data' API functions
  • CubeSQL: New connection option supported "SSLCertificatePath" and new SSL related values for "ConnectionEncryption" (thanks Christian Schmitz)
  • ODBC: Do not check the result of SQL_ATTR_ROW_ARRAY_SIZE statement attribute set (thanks Christian Schmitz)
  • MySQL: Prevent buffer allocation for LONG/LOB data when procedure parameters described (thanks Johannes Lipp)
  • Oracle: Added OCI direct path functions
  • General: SA_Snapshot isolation level value added
  • DB2: Use universal command for SACommand::isAlive method (thanks Frank Hilliger)
  • Informix: Do not use ODBC64 by default for 64-bit platforms but use SA_INFORMIX_ODBC64 build option
  • DB2: Do not use ODBC64 by default for 64-bit platforms but use SA_DB2_ODBC64 build option (thanks Frank Hilliger)
  • MySQL: Use INFORMATION_SCHEMA.PARAMETERS for getting function/procedure parameters
  • General: Added SAPI class added - DBMS API abstraction class that allows to use several API versions or the same DBMS client
  • SQL Anywhere: Added scrollable cursor support
  • ODBC: Removed SAException throwing when it cannot load some unused API functions (thanks Christian Schmitz)
  • SQL Server: Removed DB-Library support
  • Oracle: Removed OCI7 support
  • ODBC: "ODBCUseBigint" connection option added
  • General: SA_dtInt64 and SA_dtUInt64 value types added
Bug Fixes
  • SQL Server (OLEDB): Fixed the second call of SAConnection::Connect method (thanks Michael Soliman)
  • General: Fixed SAString constructors provided by SA_USE_STL build option (thanks Michael Soliman)
  • Oracle: Fixed external connection handles attaching (thanks Frank Hilliger)
  • SQL Anywhere: Crashing fixed when result set navigated (thanks Christian Schmitz)
  • General: sa_strncpy/sa_wcsncpy related fixes (thanks Manuel Baerten)
4.2.5
February 27, 2019
General ODBC PostgreSQL SQL Anywhere SQL Server SQLite
New Features
  • General: Use safe CRT/LIBC functions when available
  • General: Added SAException::CommandText() method
  • 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)
Bug Fixes
  • General: Fixed parameter by name searching (thanks Frank Hilliger)
  • SQL Anywhere: Fixed API initialization on Linux/Unix (thanks Christian Schmitz)
  • SQLite: Fixed default date/time type search option value (thanks Christian Schmitz)
  • General: Fixed STATIC DBMS API loading (thanks Manfred Kubica)
  • SQL Server (OLEDB): Fixed bug with multiple connections
  • General: Fixed using native API on Linux/Unix (thanks Peter Klotz)
4.2.4
December 28, 2018
General CubeSQL DB2 Informix Interbase MySQL ODBC Oracle PostgreSQL SQL Anywhere SQL Server SQLBase SQLite Sybase
New Features
  • SQL Server (OLEDB): API code reorganized
  • SQL Server (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
Bug Fixes
  • SQL Server (ODBC): Fixed multi-result command procesing (Brendan Wilson)
  • ODBC: Fixed input string buffer processing (thanks Alexander Goldnik)
  • SQL Server (ODBC): Fixed bug with stored procedures have the output parameters and result sets with LOB fields (thanks Mike Moening)
4.2.3
September 20, 2018
General CubeSQL ODBC PostgreSQL Sybase
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)
  • 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)
Bug Fixes
  • 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)
4.2.2
April 05, 2018
InterBase ODBC SQL Anywhere SQL Server
New Features
  • SQL Server: Support for Microsoft ODBC Driver 17 for SQL Server on Windows
  • SQL Anywhere: Support for API version 1 (thanks Christian Schmitz)
Bug Fixes
  • ODBC: Fixed binding terminated null character (thanks Jarek Karciarz)
  • 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
4.2.1
December 19, 2017
CubeSQL MySQL ODBC Oracle PostgreSQL SQL Anywhere SQL Server SQLite
New Features
  • CubeSQL: Added experimental support of CubeSQL (http://www.sqlabs.com/)
  • PostgreSQL: Microseconds instead of milliseconds used for the datetime values (thansk Sun-ho Lee)
  • Oracle: Now UNICODE SQLAPI processes "OCI_ATTR_CHARSET_FORM" option so "SQLCS_IMPLICIT" value can be used instead of default "SQLCS_NCHAR"
  • ODBC: Added "ODBCDisableLongLengthQuery" option to avoid crashes in incorrect ODBC drivers (thanks Christian Schmitz)
  • ODBC: Added odbcExternalConnection class
  • SQL Server(ODBC): Auto-detect original connection string format
  • MySQL: Use character set option before the connection established (username/password can contains not only ASCII characters, thank Bojan Hrnkas)
  • SQL Anywhere: Use the connection mutex with the cursor to prevent 42W22 error
Bug Fixes
  • SQLite: Fixed bug with multi-command statement syntax parsing (thanks Christian Schmitz)
  • SQL Anywhere: Fixed setup auto-commit mode (thanks Peter Koukoulis)
4.1.12
August 30, 2017
General Informix MySQL PostgreSQL SQL Anywhere SQL Server SQLite
New Features
  • PostgreSQL: Corrected numeric field precision/scale(set -1) length(set 0) values when they are not defined by the server (thanks Peter Koukoulis)
  • General: Added Intel Compiler build scripts (thanks Luca Teodori)
  • SQL Anywhere: Use thread-safe library on Linux/Unix (thanks Peter Koukoulis)
  • SQL Server(OLEDB): Added ssOleDbAPI::ProcessSQLServerErrorInfo() property that allows to exclude SQL Server erro iformation processing
  • MySQL: Added for loading by default also MariaDB client library (thanks Daniel Hideghethy)
  • SQLite: Initail support for multi-command queries
  • SQLite: Added 'sqlite3_memory_used' and 'sqlite3_memory_highwater' native API functions (thanks Christian Schmitz)
  • SQL Server (ODBC): Added "SQL_COPT_SS_PRESERVE_CURSORS" connection option
Bug Fixes
  • Informix: Fixed data length/indicator size (thanks Florian Apolloner)
  • Informix: Fixed memory leak with SQLAttributeCol using according to IBM IT21378 (thanks Florian Apolloner)
  • SQL Anywhere: SAConnection::setAutoCommit() command fixed (thanks Peter Koukoulis)
  • General: Fixed character parameter type binding for all ODBC API (thanks Morten Sølvberg)
  • SQL Server (ODBC): Fixed bug with multi-result statemets and LONG/LOB field dadata fetching (thanks Frederick Couste)
4.1.11
April 14, 2017
General DB2 Informix InterBase ODBC PostgreSQL SQL Anywhere SQL Server
New Features
  • Informix: Added support for "PreFetchRows" option
  • ODBC, DB2, Informix, SQL Server (ODBC): added "ExecDirect" SACommand option (use SQLExecDirect instead of SQLExecute)
  • PostgreSQL: Added "SetCursorName" command option
  • SQL Server (ODBC): Added support for Microsoft ODBC Driver 13 for SQL Server
Bug Fixes
  • General: Fixed bug with ODBC/CLI API and multiresult statement field binding (thanks Raymond Allen)
  • General: Added build fiels for IBM xlC compiler, fixed DBMS lib names for AIX (thanks Ralph Dagdag)
  • SQL Server (ODBC): Fixed problem with incorrect driver version number reported by sqlsrv32.dll (thanks Matt Fisher)
  • ODBC: fixed SQL_ATTR_ROWS_FETCHED_PTR attribute setup bug (thanks Ivano Cassis)
  • ODBC: Fixed long text data length detection for Unicode variant (thanks Bjoern Eggstein)
  • SQL Anywhere: Fixed bug with procedure/function parameters parsing (thanks Trent Bowman)
  • General: Fixed UTF-8 mode of SAMultibyte2UnicodeConverter (thanks Emma Qin)
  • General: Fixed quoted parameter name parsing (like :"my param", thanks Vyacheslav E.)
  • InterBase: Fixed UTF-8 character set name (thanks Maria Harmon)
4.1.10
October 04, 2016
General MySQL PostgreSQL SQL Anywhere SQLite Sybase
New Features
  • SQLite: Added sqlite3_load_extension and sqlite3_free API functions
  • Sybase: Added CS_SEC_ENCRYPTION, CS_SEC_EXTENDED_ENCRYPTION, CS_SEC_NON_ENCRYPTION_RETRY connection options
  • PostgreSQL: Ignore unknown date/time formats (thanks Maria Harmon)
  • MySQL: For multi-thread version try to load also MYSQL client lirary name without "_r" suffix (thanks Michael Noe)
  • General: Added SA_STATIC_PGSQL build option
  • MySQL: Added MYSQL_SHARED_MEMORY_BASE_NAME connection option
Bug Fixes
  • General: Fixed SAInterval internals
  • MySQL: Fixed statement API SA_dtInteral binding (thanks Sophia Wang)
  • SQL Anywhere: Fixed bug with prepared statement execution (thanks Brad Blankenburg)
  • MySQL: Fixed bug with the first SACommand::FetchPrior() call (thanks Dave Sulentic)
4.1.9
May 04, 2016
Oracle
Bug Fixes
  • Oracle: Fixed bug with CLOB reading and using multi-byte client encoding (thanks Peter Klotz)
4.1.8
April 27, 2016
General Oracle PostgreSQL Sybase
New Features
  • Oracle: try to get the LOB size before read
  • General: added missed 'SAValueRead::operator SANumeric() const' body (thanks Balázs Kádár)
Bug Fixes
  • Sybase: Fixed bug with ASE 16.x version detection (thanks Frank Hilliger)
  • General: Fixed utf8.c code for correct results with and without output buffer, Unicode 3.0 standards (thanks Peter Klotz)
  • General: Fixed SAComand::Field(index) throws SAException when index is wrong (Christian Schmitz)
  • PostgreSQL: fixed using "APPNAME" connection option when connection string dbname already includes other options
  • General: fixed SIZE_MAX definition bug (thanks Peter Klotz)
  • General: Fixed the SAString::SetUTF16Chars method for correct new []/delete [] (thanks Matt Feemster)
4.1.7
December 23, 2015
General MySQL Oracle SQL Server SQLite
New Features
  • MySQL: ignore missed myodbc_remove_escape
Bug Fixes
  • General: Fixed the query text comments parsing (thanks Georgiy Pakhutin)
  • SQL Server (OLEDB): Fixed zero-scale numeric reading for SQLCE (thanks Gerardo Goitiandia)
  • Oracle: fixed INTERVAL data reading (thanks Leo Namuco)
  • SQLite: fixed binding 64-bit integer parameters (thanks Balázs Kádár)
4.1.6
October 24, 2015
General DB2 Informix MySQL ODBC Oracle PostgreSQL SQL Server SQLBase SQLite
New Features
  • ODBC: added ODBCAddLongTextBufferSpace command option (thanks Christian Schmitz)
  • SQLite: added sqlite3_key and sqlite3_rekey API functions (thanks Christian Schmitz)
  • Oracle: connection pool support (EXPERIMENTAL)
  • Informix: Ignore unknown data types (set field value to NULL)
  • DB2: Ignore unknown data types (set field value to NULL)
  • SQLBase: Ignore unknown data types (set field value to NULL)
  • ODBC: Ignore unknown data types (set field value to NULL)
  • General: Use specific internal SQLAPI library error native codes
  • Oracle: Added OCI_ATTR_PREFETCH_ROWS and OCI_ATTR_PREFETCH_MEMORY options
  • General: Added SAException& SAException::operator=(const SAException &other) (thanks Georgiy Pakhutin)
  • MySQL: Added ability to use named pipes connection
Bug Fixes
  • PostgreSQL: fixed function parameters reading
  • SQL Server (ODBC): Fixed LOB output procedure parameter reading
  • DB2: Fixed bug with LONG/LOB 'NULL' field detection on 64-bit platfroms (thanks Frank Hilliger, also fixed for Informix, ODBC and SQL Server/ODBC)
4.1.5
May 05, 2015
General InterBase MySQL Mysql ODBC Oracle PostgreSQL SQL Server SQLite
New Features
  • Oracle: Added OCI_ATTR_RECEIVE_TIMEOUT, OCI_ATTR_SEND_TIMEOUT conection options
  • General: Support for MinGW64
  • Oracle: Added ora8ExternalConnection class (thanks Frank Hilliger)
  • MySQL: Added microseconds support (thanks Javier Cuevas Domingo)
  • General: Added SACommand::FetchPos method (EXPERIMENTAL)
  • Oracle: Added timezone support with SADateTime (thanks Frank Hilliger)
  • General: Added timezone information into SADateTime class (thanks Frank Hilliger)
  • Mysql: Added connection option "SkipServerInit" (thanks Pierre-Yves Thomas)
  • SQLite: Added sqlite3_enable_load_extension API function
Bug Fixes
  • SQL Server (ODBC): Fixed datetime parameter precision issue (thanks Balázs Kádár)
  • PostgreSQL: Fixed SADateTime to internal format conversion at 64-bit (thanks Stefan Csomor)
  • InterBase: Fixed LOB reading/writing bug (thanks Pascal Geenens)
  • General: Fixed SAException constructor for correct nested exception copying (thanks Martin Rötzl)
  • Oracle: Fixed Long/LOB reading issues at multi-threading applications (thanks Niklas Bergh)
  • ODBC: Fixed the error message/code assigning for some drivers (thanks Christian Schmit)
  • SQLite: Fixed the error processing issue at multi-threading applications (thanks Niklas Bergh)
4.1.4
October 18, 2014
General Informix MySQL ODBC PostgreSQL SQL Server
New Features
  • MySQL: Added support for libmysqlclient.so.18 (thanks Christian Schmitz)
  • SQL Server: 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
  • SQL Server: OLEDB API, added support for ISQLServerErrorInfo (thanks Georgiy Pakhutin)
  • SQL Server: OLEDB API, added support for SACommand::setBatchExceptionPreHandler (thanks Georgiy Pakhutin)
  • General: Added pAddlData parameter for SACommand::setBatchExceptionPreHandler (thanks Georgiy Pakhutin)
Bug Fixes
  • 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)
  • 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)
4.1.3
May 03, 2014
General MySQL ODBC Oracle PostgreSQL SQLite
New Features
  • SQLite: Added ReadLongOrLob support (thanks Jeremy A. Ford)
  • General: Added initial support for SQL Anywhere
  • SQLite: Added sqlite3_update_hook API function
  • MySQL: Added 'MYSQL_SECURE_AUTH' connection option (thanks Christian Schmitz)
  • 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)
  • PostgreSQL: Do not use utf8 encoding for the error messages when the connection is bad (thanks jonathan.gonzalez at kepler.com.mx)
  • 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
Bug Fixes
  • General: Fixed multi-byte(including UTF-8) to Unicode converter
  • Oracle: Fixed LONG data type reading/writing with Unicode version (thanks Jimmy Michiels)
  • Oracle: Fixed crash if using Oracle database with LDAP configuration and OpenLDAP (thanks Alfred Gebert)
  • ODBC: Fixed procedure parameter parsing (thanks Joris Koster)
  • ODBC: Fixed SANumeric data processing (thanks Max Lipshits)
  • General: Fixed empty string data returned with SAString::GetUTF16Chars (thanks Christian Schmitz)
4.1.2
October 30, 2013
General DB2 MySQL ODBC PostgreSQL
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)
  • General: Renamed all names with suffix Win32 to Windows one
  • ODBC: Added build option to configure SQLWCHAR type on Linux/Unix (thanks Christian Schmitz)
  • General: Addded ability to trace the real query text sent to DBMS API (experimental, SAGlobals::SetTraceFunction)
Bug Fixes
  • ODBC: Fixed the first character truncation of long/clob text field on Linux/Unix
  • 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)
4.1.1
May 24, 2013
General DB2 Informix InterBase Oracle PostgreSQL SQL Server
New Features
  • General: SAString method GetUTF16Chars, GetUTF16CharsLength, SetUTF16Chars available in not-Unicode version
  • SQL Server: Added support for Microsoft ODBC Driver 11 for SQL Server on Linux
  • Oracle: Added "NLS_CHAR" connection option
  • 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)
Bug Fixes
  • Informix: Fixed bug with data type conversion (thanks Jay Sridhar)
  • InterBase: Fixed the 64-bit DLL name (thanks Junior Tcheho)
  • SQL Server: 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)
  • PostgreSQL: Fixed long binary/blob binding (thanks Yan Dai)
  • General: Fixed 'SANumeric::operator sa_uint64_t()' for Windows (thanks Junior Tcheho)
4.0.3
December 20, 2012
General DB2 Informix ODBC PostgreSQL SQL Server SQLite Sybase
New Features
  • Informix: Added Unicode support
  • SQL Server: Use ODBC API by default instead of OLEDB, ODBC client allowed with MinGw
  • SQLite: Start transaction indirectly before the first query executed (thanks Frank Hilliger)
  • Sybase: Added 15.7 context support
  • Sybase: Don't using read only cursor by default (thanks Ian Hodgkinson)
  • DB2: Use trusted connection when username is empty
  • ODBC: Added Unicode support for Linux/Unix
  • SQLite: Added #ifdef-#endif for static sqlite3_table_column_metadata (thanks Jesus Malo Poyatos)
  • PostgreSQL: Added PQping/PQpingParams API functions
Bug Fixes
  • General: Fixed bug with dummy data converter that can produce LOB/Long data reading problems (thanks Peter Klotz)
  • DB2: Fixed LOB/LONG field reading (thanks Fernand Alcatrao)
  • SQL Server: ODBC API, fixed bug with connection string parsing (thanks Hide Ishikuri)
  • General: Fixed procedure parameters binding (thanks Joel Baby Jose)
  • PostgreSQL: Fixed connection code bug when application name specified (thanks Alexander Horak)
  • SQLite: Fixed problem with string data conversion in Unicode version (thanks Jacob Pedersen)
4.0.2
October 29, 2012
General DB2 InterBase MySQL ODBC PostgreSQL SQL Server SQLite Sybase
New Features
  • PostgreSQL: Added support for executing PostgreSQL function
  • General: Bind variable can start with '_' and comment processing added ('--' until end-of-line and /* .. */, thanks Georgiy Pakhutin)
  • PostgreSQL: Added processing for PQsetdbLogin pgoptions parameter passed with the connection string
  • SQL Server: Added DBPROP_SSCE_DBCASESENSITIVE connection optioon for CompactEdition (thanks Jacob Pedersen)
  • ODBC: Binary field Interpreted as a long binary if the column size is 0 (thanks Scott at touchnet)
  • DB2: Added Unicode support for Linux/Unix (thanks Jonathan Gonz�lez Encarnaci�n)
  • Sybase: Added timeout message processing into callback function (CS_TIMEOUT works now, thanks Michael Graf)
  • SQL Server: Added SSPROP_INIT_TRUST_SERVER_CERTIFICATE OLEDB connection option
  • SQLite: Added sqlite3_table_column_metadata API fuinction
  • MySQL: Added function support
  • General: Avoided double conversion of UTF-8 and UTF-16 data (SA_STRING_EXT required, thanks Christian Schmitz)
  • General: SONAME added for the shared library (thanks Pobinger Gerhard Stefan)
Bug Fixes
  • General: Fixed SAString binary lenght calculation (thanks Christian Schmitz)
  • General: Fixed using wcscasecmp for MacOS X (thanks Christian Schmitz)
  • MySQL: Fixed procedure/function parameters parsing (thanks icqwjj)
  • InterBase: Fixed query preparing and executing with national symbols, Unicode version (thanks Petr Liska)
  • SQL Server: Fixed IssNCliCursor::ConvertString and IssOleDbCursor::ConvertString virtual methods(thanks Petr Liska)
  • Sybase: Fixed IsybCursor::ConvertString virtual method
  • InterBase: Fixed IibCursor::ConvertString virtual method
  • SQLite: Fixed SACommand::isResultSet always returns true
  • General: Fixed SAString::SetUTF16Chars method (avoid crash when the source string is NULL)
  • General: Fixed UTF-16 code (wrong conversion)
4.0.1
June 01, 2012
General MySQL ODBC Oracle PostgreSQL SQL Server SQLite
New Features
  • General: SA_MINDEP build option replaced with SA_RUNTIME=(dynamic|static)
  • General: Unicode Linux/Unix configuration is supported now (except ODBC)
  • General: Certain SAString methods return SIZE_MAX now instead of (-1)
  • General: Changed all internal buffer size types for size_t
  • SQLite: Added backup API functions (thanks Dave Fileccia)
  • General: SADateTime default constructor is public again
  • General: SAValueRead::asInterval() method substracts SADateTime(0.0) from SA_dtDateTime value instead of the current time
  • SQLite: Added "SQLiteTransactionType" connection option (thanks Frank Hilliger)
  • SQL Server: Ready for SQL Server 2012 Native Client
  • Oracle: Function returned value parameter name changed from "Result" to "RETURN_VALUE"
Bug Fixes
  • MySQL: Fixed VARCHAR field data truncation with statement API (thanks Abhay Rawat)
  • Oracle: Fixed NCLOB/NCHAR/NVARCHAR reading for UTF16 encoding
  • PostgreSQL: Fixed time string parsing(thanks Andrew Smolko)
  • PostgreSQL: Fixed string escaping
  • ODBC: Fixed SQLDriverConnect related bug (thanks Mike Moening)
3.8.3
November 04, 2011
General DB2 Informix MySQL ODBC Oracle PostgreSQL SQL Server SQLite Sybase
New Features
  • PostgreSQL: Added support for PQfformat API function
  • Sybase: Added SA_SYBASE_LARGE_IDENTIFIERS build option (CS_NO_LARGE_IDENTIFIERS uses by default)
  • Sybase: Added CS_SYB_CHARSET connection option (thanks Leonid O Volkov)
  • PostgreSQL: Added SA_RepeatableRead isolation level support (actual for PG 9.1, thanks Andrew Smolko)
  • SQLite: Bind SA_dtUlong parameter as 64-bit integer instead of int (thanks Derick Naef)
  • General: Align the default buffer length for long/LOB data to sizeof(SAChar) (thanks Emir Subasic)
Bug Fixes
  • PostgreSQL: Fixed binary values escaping (thanks combit.net and Bjoern Eggstein)
  • MySQL: Fixed API mysql_ssl_set_t for the modern parameter set (thanks Robert Osada)
  • General: Fixed SACommand::ParseInputMarkers method (thanks Michael Gandlin)
  • DB2: Fixed bug with binding an empty LOB (thanks Martin R�tzl)
  • SQL Server: ODBC, fixed empty LOBs binding and reading
  • Informix: Fixed empty LOBs binding and reading
  • ODBC: Fixed empty LOBs binding and reading
  • Oracle: Fixed bug with PL/SQL functions return boolean (thanks Andrew Simmons)
3.8.2
June 22, 2011
General Informix Interbase MySQL ODBC Oracle Sybase
New Features
  • General: samisc.h header moved into general include folder (SAMutex, SACriticalSectionScope classes)
  • General: Added SA_ODBC_INCLUDES build option
  • ODBC: Added the catalog name into ODBC and MSSQL(ODBC) DescribeParamSP method
  • General: Use neutral value of 'struct tm' DST flag (SADateTime class)
  • General: Use ISO format (YYYY-MM-DDTHH:MI:SS) for SA_dtDateTime values at SAValueRead::asString method
  • Interbase: Implemented SA_UNICODE_WITH_UTF8 option
  • General: SADateTime::SADateTime() constructor is private now
  • General: Added SAGlobals::StringToClient and SAGlobals::ClientToString methods
  • General: Added SA_STATIC_SYBASE build option
Bug Fixes
  • MySQL: Fixed the field describing bug (thanks Brad DeJong)
  • ODBC: Fixed name buffer length for SQLDescribeCol API function
  • Informix: Fixed Informix SAconnection::isAlive
  • Informix: Fixed SACommand::isResultSet
  • General: Fixed SACommand::Destroy
  • Oracle: Fixed bug with package method executing that should be resolved by synonym (thanks Michael Lyle)
  • Interbase: Fixed SACommand::isResultSet
  • Sybase: Fixed SA_UNICODE_WITH_UTF8 option implementation
  • General: Fixed Borland C++ build files
3.8.1
February 20, 2011
General DB2 Informix MySQL PostgreSQL SQL Server SQLBase Sybase
New Features
  • General: Removed SA_SCROLLABLE_CURSOR build option, this features is always available now
  • DB2: Added scrollable cursor support
  • Informix: Added scrollable cursor support
  • SQLBase: Added scrollable cursor support
  • Sybase: Added scrollable cursor support
  • General: Removed SA_UNICODE_WITH_UTF8 build option, this features is always turned on now
  • General: Added conversion from numeric value into SAValueRead::asBool method
  • SQL Server: OLEDB, added support for Compact Edition 4.0 (thanks Jacob Pedersen)
  • MySQL: Now SAField::FieldSize methods returns the 'character' length for character fields (thanks Jonathan Gonz�lez Encarnaci�n)
Bug Fixes
  • PostgreSQL: Fixed bug with the application name parameter (thanks Bjoern Eggstein)
3.7.35
January 26, 2011
Oracle
Bug Fixes
  • Oracle: Fixed LOB reading with OCI 10 and above (thansk Anca Elena Arhip)
3.7.34
January 23, 2011
General MySQL ODBC PostgreSQL SQL Server SQLite Sybase
New Features
  • SQL Server: OLEDB, removed assertion for SQL Server 2008 date and time types
  • SQLite: sqlite3_open_v2() support, the statement is closed when there is no result or an error occurs (thanks Mario Degenhardt)
  • MySQL: Added CLIENT_REMEMBER_OPTIONS and MYSQL_OPT_RECONNECT connection options (thanks Steven Van Ingelgem)
  • PostgreSQL: Added "APPNAME" connection option (version 9.x and above)
  • Sybase: Added correct description of the output procedure parameters (ASE version >= 12.5, thanks Georgiy Pakhutin)
  • PostgreSQL: Added 'E' prefix for binary sequnces passed to server version 8.2.4 and above
Bug Fixes
  • SQL Server: OLEDB, fixed the memory leak at 'Check' function (SAExecption throwing, thanks Michael Soliman)
  • ODBC: FreeTDS, fixed the bug with missing first character of the long text/string data
  • General: Fixed bug with SAValueRead::asBool() on BigEndian platforms (thansk Vlad Romascanu)
  • MySQL: Fixed again binding of the binary data (thanks Martin Herb)
3.7.33
August 31, 2010
General MySQL ODBC SQL Server Sybase
New Features
  • General: SACommand::Param(int) method performance improved
  • Sybase: Added 15.5 context support
  • Sybase: Added SA_UNICODE_WITH_UTF8 build option support (EXPERIMENTAL)
  • MySQL: Added scrollable cursor support (EXPERIMENTAL)
  • General: Added SA_32BIT build option (Linux/Unix g++ build files)
  • ODBC: 2-byte buffer used with SQLGetData (getting the long field size, thanks David Stewart)
  • General: SA_STRING_EXT build option added (string buffer allocation optimization, thanks iontrading.com)
  • ODBC: Set SQL_ATTR_ODBC_CURSORS later to avoid crash when using iODBC (thanks iontrading.com)
  • General: Use C runtime routines at SAString::CompareNoCase (thanks iontrading.com)
Bug Fixes
  • SQL Server: OLEDB, fixed parameter date type name for ICommandWithParameters::SetParameterInfo (thanks Michael Soliman)
  • MySQL: Fixed binding of the binary data (thanks Martin Herb)
  • MySQL: Fixed the error processing when mysql_fetch_row returns NULL (thanks Michael Graf)
  • Sybase: Fix for 64-bit DLL names under Windows (thanks iontrading.com)
3.7.32
July 02, 2010
General MySQL Oracle SQLite Sybase
New Features
  • SQLite: Now (if "SQLiteDateValueType" = "DOUBLE") SQLAPI++ interprets a datetime value as a Julian Day JD double value (before we used SADateTime interpretation)
  • SQLite: Added "SQLiteDateValueType" option, SQLAPI++ uses "YYYY-MM-DD HH:MM:SS.SSS" formatted strings for date/time parameters by default
  • SQLite: Changed "SQLiteDateTypes" option default value (now it's "DATE,DATETIME,TIME,TIMESTAMP")
  • Sybase: Connection options "SYBINTL.LIBS", "SYBCOMN.LIBS", "SYBTCL.LIBS", "SYBCT.LIBS", "SYBCS.LIBS" added
  • General: More information provided if DBMS API loading fails
  • General: 8-byte data length is allowed for SA_dtULong type
  • SQLite: SA_STATIC_SQLITE build option added
  • SQLite: The server/client version number is returned in common format now (hi- and low-word parts)
  • Oracle: SQLT_FLT binding type is used instead of SQLT_BDOUBLE even when it's supported by OCI
  • General: SA_MANIFEST_EMB build option added
Bug Fixes
  • MySQL: Fixed bug with the binding of zero-length blob- and byte- fields (thanks Taneli Otala)
  • General: Fixed problem with MacOS X and asctime_r function (thanks Michael Dickey)
3.7.31
March 24, 2010
ODBC SQL Server Sybase
New Features
  • SQL Server: OLEDB, added DBPROP_COMMITPRESERVE command parameter
Bug Fixes
  • ODBC: Numeric data truncation bug fixed (thanks Gebert, Alfred)
  • SQL Server: OLEDB and ODBC, fixed bug with long/LOB data binding (thanks Thomas H�u�ermann)
  • ODBC: fixed bug with long/LOB data binding
  • Sybase: fixed bug with empty string binding? there was '\0' instead of ' ' (thanks Georgiy Pakhutin)
3.7.30
February 10, 2010
General DB2 Informix InterBase MySQL ODBC Oracle PostgreSQL SQL Server SQLBase SQLite Sybase
New Features
  • General: Added new methods - SAConnection::Reset() and SACommand::Reset()
  • General: Performance improved (Christian Zink)
  • Oracle: Added experimental scrollable cursor support (thanks combit.net and Alexander Horak)
  • SQL Server: Added native (ODBC) API support
  • PostgreSQL: Connection option "UseDLLonWin32" replaced by "LIBPQ.LIBS" (can define several library names)
  • ODBC: Connection option "UseManagerOnUNIX" replaced by "ODBC.LIBS" (also can define several library names)
  • MySQL: Connection option "MYSQL.LIBS" added (can define several library names)
  • Oracle: Connection option "OCI8.LIBS" added (can define several library names)
  • DB2: Connection option "DB2CLI.LIBS" added (can define several library names)
  • Informix: Connection option "INFCLI.LIBS" added (can define several library names)
  • SQLBase: Connection option "SQLBASE.LIBS" added (can define several library names)
  • SQLite: Connection option "SQLITE.LIBS" added (can define several library names)
  • InterBase: Connection option "ClientLibraryName" replaced by "IBASE.LIBS" (also can define several library names)
  • Sybase: Bind ' ' character for empty procedure parameter strings (thanks Vlad Imshenetskiy)
  • Sybase: SA_PARAM_USE_DEFAULT support added
Bug Fixes
  • PostgreSQL: Fixed memory leak when "UseCursor" option is set (thanks Vlad Romascanu)
  • Oracle: Fixed problem with OCI version 8.1.x and 9.0.x
  • SQL Server: Fixed bug with unsigned 32-bit integer parameters (thanks Kyle Stock)
  • SQL Server: Fixed problem with [n]varchar|varbinary(max) output parameters (thanks Alfred Gebert)
  • SQL Server: Fixed bug with SAParam::setAsBool method (thanks Jacob Pedersen)
  • Sybase: Fixed bug in error handling (thanks Volodymyr Drobot)
  • MySQL: Fixed bug with UTF-8 client charcter set and BLob binding (Jason Tai)
  • SQL Server: Fixed SA_tdBool data binding (thanks Jacob Pedersen)
  • DB2: Fixed problem with prefetching on 64-bit platforms (thanks Cal Heldenbrand)
3.7.29
October 14, 2009
General DB2 Firebird MySQL Oracle SQL Server SQLite Sybase
New Features
  • General: Added Borland compilation option SA_MINDEP. Now dynamic RTL is used by default with bcc compiler
  • SQLite: Added new SAConection option "SQLiteDateTypes" (thanks Jonathan Gonzalez Encarnacion)
  • SQLite: Added declared type processing if there are no any rows at the result set (thanks Jonathan Gonzalez Encarnacion)
Bug Fixes
  • DB2: Fixed bug with Unicode DB2 data type(vargraphic) interpretation
  • General: Fixed Borland C++ SQL Server OLEDB compilation problem (sa_max() using instead of max())
  • SQLite: Fixed bug at the text data conversion with Unicode configuration (thanks Holger Fischer)
  • SQLite: Fixed bug with SAConnection::setAutoCommit functionality (thanks Jonathan Gonzalez Encarnacion)
  • Oracle: Fixed temporary LOBs memory leak (thansk Marc Oliver R. Castaneda)
  • Sybase: Fixed 64-bit related INT type size bug (thanks Jon Linkins)
  • SQL Server: Fixed bug with "Execute_riid" option is set to "IID_IStream" (thanks Patrik Luscan)
  • MySQL: Fixed datetime and boolean type processing if statement API is used (thanks Christophe Benoit)
  • MySQL: Fixed bug with non-SELECt queries if statement API is used (thanks Christophe Benoit)
  • General: Fixed bug with SANumeric from string operator (thanks Christophe Benoit)
  • Firebird: Fixed 64-bit version (thanks evenreal.com)
  • Oracle: Fixed CLOB output parameter reading with ReadLob2 (thanks Gebert, Alfred)
  • Oracle: Fixed field and output parameter buffer size for multi-byte client character sets (thanks Gebert, Alfred)
3.7.28
May 27, 2009
General DB2 MySQL Oracle SQL Server Sybase
New Features
  • SQL Server: Added SAConnection OLEDB options "CompactEdition.3.0" and "CompactEdition.3.5" (thanks Johannes Maly)
  • General: Linux/Unix, added SQLAPI_SCOOSR5 compilation option (implemented for SCO OpenServer 5.0.7 by Andrew Thornton)
  • General: Linux/Unix, removed stabs+ debug information format specification (thanks Andrew Thornton)
  • Oracle: Added a code that uses new OCILogRead2 when available (thanks Jeff Huttel)
  • General: Several performance improvements (thanks Mike Moening)
  • General: For 'SACommand::Field(const SAString &sField)' added the second cycle for the field searching by short name (thanks Felix Nawothnig)
  • Sybase: Added ability to define procedure parameters when the procedure name includes its number (ASE, like 'procedure1;1', thanks Vlad Imshenetskiy)
  • Sybase: Added method to detect server type (ASA or ASE) to avoid any extra internal exception processing (thanks Vlad Imshenetskiy)
  • SQL Server: Added 2008 OLEDB client support
  • SQL Server: Added 2008 new data type support (thanks Justin Matthews)
  • MySQL: Added using 'KILL QUERY' command instead of mysql_kill with MySQL version >= 5.0 (thanks Andrew Thornton)
  • General: Documentation improved (thanks Justin Matthews and Kaarel Odraks)
Bug Fixes
  • SQL Server: Fixed processing of 'real' and 'tinyint' field types for SQLCE (thanks Jacob Pedersen)
  • General: Linux/Unix, added SQLAPI_SOLARIS compilation option and fixed pthread compilation problem (thanks Bogdan Pytlik)
  • SQL Server: OLEDB, fixed bug with empty second result set at the same scrollable SACommand (thanks Bjoern Eggstein)
  • MySQL: Fixed bug when it was impossible to process several result sets those a procedure returns (thanks Klass, Markus)
  • MySQL: Fixed problem with prepared statements and different MYSQL_BIND versions (thanks Alexander Petrossian)
  • MySQL: Fixed bug with SA_UNICODE_WITH_UTF8 and text fields when statement API used (thanks Jason at goffconcepts.com)
  • DB2: Fixed bug with text fields (UNICODE version)
  • Sybase: Fixed long text field reading (SA_UNICODE)
  • SQL Server: Added fixes those allows to use "ICommandPrepare" = "skip" with procedures (without preparing there was string data truncation, thanks Justin Matthews)
  • Oracle: Fixed double values binding - using SQLT_BDOUBLE rather then SQLT_FLT (thanks Alan Hardin)
3.7.27
January 22, 2009
General MySQL SQL Server
New Features
  • General: Now 'SANumeric::operator double() const' again uses strtod() variant but with '.' replaced by localeconv()->decimal_point (thanks Alasdair Richardson)
Bug Fixes
  • General: 'SAGlobals::UnloadAPI() = true' behavior fixed (thanks Christophe Benoit)
  • MySQL: Fixed bug at ImyCursor::MySQLEscapeString(), if If a string is passed in that only contains escapable chars (thanks Oliver Watson)
  • SQL Server: Fixed bug with scrollable statement reusing that results in wrong result set processing (thanks Alexander Horak)
3.7.26
December 03, 2008
General InterBase ODBC PostgreSQL SQL Server Sybase
New Features
  • ODBC: Now SA_dtNumeric SQLAPI++ type is used by default for SQL_NUMERIC, SQL_DECIMAL and SQL_BIGINT (before SA_dtDouble was there)
  • ODBC: Added new option SAConnection option ODBCUseNumeric
  • PostgreSQL: Added support for SA_UNICODE_WITH_UTF8 build option (experimental)
  • Sybase: sybAPI::DefaultLongMaxLength method added to control max 'long' field size (when the using of ct_get_data is impossible)
  • Sybase: SAGlobals::SetSybaseMessageCallback method renamed/moved to sybAPI::SetMessageCallback (still EXPERIMENTAL)
  • InterBase: Added ability to use new Firebird fb_interpret call instead of unsafe isc_interprete (thanks Diane Downie)
  • General: SQLAPI++ parameters and fields buffers allocation optimized (thanks Jeff Huttel)
  • Sybase: CS_LOCALE connection option added
  • Sybase: Added 'date' type support for the stored procedure parameters (thanks Vlad Imshenetskiy)
  • ODBC: Added new connection options - SQL_DRIVER_PROMPT, SQL_DRIVER_COMPLETE, SQL_DRIVER_COMPLETE_REQUIRED, DSN
Bug Fixes
  • SQL Server: Fixed bug with numeric parameter presicion (truncation, thanks Jean-Claude Chauve)
  • PostgreSQL: Fixed bug with SAParam::setAsULong (thanks Vlad Romascanu)
  • Sybase: Fixed problem with the procedure parameters describing when procedure is located in another database (Georgiy Pakhutin)
  • SQL Server: Fixed bug with procedure preparation
3.7.25
September 12, 2008
General Oracle SQL Server SQLite Sybase
New Features
  • General: saConnectionHandler_t callback added at SAConnection::Connect method
  • SQL Server: SQLCE, "CreateDatabase" option added
  • SQL Server: SQLCE, use SA_dtString program type for uniqueidentifier fields
  • General: Added compilation option SA_UNICODE_WITH_UTF8. Used with MySQL to turn on utf-8 client character set for SA_UNICODE configuration
  • General: SA_UNICODE configuration. Added SAString methods GetUTF8Chars, GetUTF8CharsLength, SetUTF8Chars
  • SQLite: Added new API functions - sqlite3_threadsafe and sqlite3_last_insert_rowid
  • SQLite: Added "BusyTimeout" connection option
  • General: Added version info into sqlapi.dll (thanks Frank Hilliger)
  • Sybase: SACommand::Cancel should work now (thanks Georgiy Pakhutin)
  • SQL Server: OLEDB, SACommand::Cancel works with multiple results (required SQLNCLI, thanks Georgiy Pakhutin)
  • SQL Server: OLEDB, the default value of "ICommadPrepare" option was changed to "skip"
  • Sybase: "SybaseResultType" and "SybaseResultCount" SACommand options added
  • Sybase: SAGlobals::SetSybaseMessageCallback method added (EXPERIMENTAL, allows to process Sybase messages manually)
Bug Fixes
  • Oracle: Fixed memory leak when SYS_REFCURSOR parameters returns a cursor field (thanks mera.ru)
  • Oracle: Fixed option processing OCI_ATTR_CHARSET_FORM = SQLCS_NCHAR for NCLOB binding (thanks Andreas Wenzel)
  • Oracle: Fixed binding(SA_UNICODE) CLOB procedure parameters (thanks Marcel Rassinger)
  • General: Fixed 'SANumeric::operator double() const' bug with locale settings those use a special character as a decimal delimiter instead of '.'
  • SQLite: Fixed wrong API initialization (thanks Peter Klotz)
3.7.24
February 26, 2008
General DB2 MySQL ODBC Oracle SQL Server SQLite
New Features
  • MySQL: Connection options MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIMEOUT and MYSQL_OPT_CONNECT_TIMEOUT added
  • MySQL: Version 5.1 supported now
  • SQLite: Initial support for SQLite added
  • ODBC: Added the special code for situations when the ODBC driver returns 0 bytes instead of SQL_NO_DATA (LongChar reading, thanks Frank Hilliger)
  • SQL Server: SQLOLEDB layer modified for Compact Edition 3.5
  • SQL Server: Added Compact Edition specific options. Now CE layer is available at UNICODE version only
  • MySQL: Added SAInterval parameter processing (thanks Frank Hilliger)
Bug Fixes
  • Oracle: CLOB/BLOB truncation bug fixed
  • Oracle: REFCURSOR memory leak problem fixed
  • DB2: Fixed the problem with column names (UNICODE version, thanks Adrian Studer)
  • General: Fixed the problem with the SANumeric rounding (thanks Mike Moening)
3.7.23
October 12, 2007
General MySQL Oracle PostgreSQL SQL Server Sybase
New Features
  • PostgreSQL: The error message includes the diagnostic trouble code now (thanks Helmut Ebersmann)
  • SQL Server: SQLOLEDB layer works with Compact/Mobile edition now (SQLAPI should be compiled with SA_UNICODE, thanks John Hague)
  • Sybase: New scheme of the client API libraries loading , SA_INCLUDES_SYBASE building parameter added (thanks Max Hales)
  • Sybase: CS_LOGIN_TIMEOUT and CS_TIMEOUT connection parameters added (thanks Beaty, Robert)
  • General: Build scripts updated. More samples are provided now
Bug Fixes
  • MySQL: Fixed bug with affected rows value (thanks Christoph Merten)
  • MySQL: Fixed bug with datetime/timestamp second part/fraction (thanks Helmut Ebersmann)
  • General: SACommand::ParseInputMarkers fixed for tabulator after parameter name (thanks Adrian Studer)
  • SQL Server: IssOleDbCursor::SetParameterInfo fixed for correct type name (thanks to Phillip at spectorsoft.com)
  • Oracle/General: Fixed issue with SANumeric/double conversion (thanks Adrian Studer)
  • Oracle: Fixed problem with CLOB and varying-width client-side character sets (UTF-8)
3.7.22
June 25, 2007
MySQL ODBC PostgreSQL SQL Server
New Features
  • SQL Server: Added statement preparation for each executing when option "ICommandPrepare" = "SetParameterInfo" used (thanks to Chris Hecker)
  • ODBC: The code modified to work correctly with long/blob fields under Linux and FreeTDS driver
  • ODBC: SAConnection::isAlive() uses SQLGetConnectAttr with SQL_ATTR_CONNECTION_DEAD now
  • SQL Server: Added SAConnection parameter "OLEDBProvider" (SQLOLEDB connection)
Bug Fixes
  • PostgreSQL: Fixed string escaping bug (buffer size too small, thanks combit.net)
  • SQL Server: Fixed string parameters buffer size bug on x86_64/SQLOLEDB
  • MySQL: Fixed access violation bug with fetching empty text field data (thanks Albert Perdon)
  • MySQL: Fixed bug with non-initialized statement handle (thanks Mario Lavalliere)
3.7.21
May 24, 2007
DB2 MySQL ODBC Oracle SQL Server
New Features
  • Oracle: "APPNAME" SAConnection parameter added (OCI_ATTR_CLIENT_IDENTIFIER is used, thanks Frank Hilliger)
  • MySQL: "UseStatement" SACommand parameter added (SQLAPI++ can use MySQL statement API now)
Bug Fixes
  • MySQL: Fixed bug with SAConnection::isAlive()
  • SQL Server: "ICommandPrepare" SACommand parameter value "SetParameterInfo" added (fixes http://support.microsoft.com/kb/235053)
  • MySQL: Fixed long character type support with UNICODE
  • Oracle: Fixed CLOB type support with UNICODE
  • ODBC: Fixed access violation bug at IodbcConnection::Check (UNICODE, thanks Jay Sridhar)
  • DB2: Fixed possible access violation bug at Idb2Connection::Check (UNICODE)
3.7.20
March 30, 2007
General DB2 MySQL Oracle PostgreSQL SQL Server Sybase
New Features
  • Sybase: Version 15.x support for Linux/UNIX (.so names changed - thanks Ronan O'Sullivan)
  • DB2: Unicode support improved
  • General: Added common SAConnection option: "APPNAME", "WSID" (they are supported for SQL Server and Sybase at the moment)
  • SQL Server (OLDEDB): Added SAConnection options SSPROP_INIT_FILENAME, SSPROP_INIT_ENCRYPT, SSPROP_INIT_WSID
  • PostgreSQL: Added using of the PQescape* functions if they are available
  • DB2: SA_dtString procedure parameter type is used for the LONG VARCHAR database type
  • MySQL: Added support for multiple result set
  • DB2: All diagnostic messages are combined into SAException error text now
  • Sybase: CS_HAFAILOVER connection parameter added
  • DB2: XML type support added
Bug Fixes
  • Oracle: Crash fixed with the OCIDateTime descriptor freeing
  • SQL Server (OLDEDB): x86_64 fixes
  • General: Fixed a SADateTime::TmFromDate problem with the rounding
  • DB2: Fixed x86_64 support
3.7.19
December 28, 2006
General MySQL ODBC Oracle PostgreSQL SQLBase Sybase
New Features
  • Oracle: Added procedure/function support for Oracle PL/SQL BOOLEAN type
  • Oracle: Support for BINARY_FLOAT and BINARY_DOUBLE types
  • General: Added bool& SAGlobals::UnloadAPI() - prevent from DBMS API unloading
  • General: SADateTime::SADateTime(double dt) - round the fraction result to microseconds
  • General: Added SAInterval class for time intervals (experimental, only MySQL support for now)
  • MySQL: Support for multi-result statements
  • MySQL: Set by default connection flags CLIENT_MULTI_STATEMENTS and CLIENT_MULTI_RESULTS
  • MySQL: Added support for the 'bit' type
Bug Fixes
  • Oracle: Memory leak fixed with SYS_REFCURSOR & TIMESTAMP/BLOB/CLOB fields
  • SQLBase: Fixed access violation at sqldes() C API function with SQLBase version 10
  • PostgreSQL: Fixed problem with bytea/text on AIX 64-bit (seems common 64-bit platform problem)
  • Sybase: Fixed MinGW version
  • ODBC: Windows x64 fixes. Should work now
  • Oracle: Fixed bug with DateTime parameters and an execution of prepared statements
3.7.18
September 27, 2006
General MySQL Oracle SQL Server
New Features
  • General: Added SACommand::operator << (unsigned short Value) and SACommand::operator << (unsigned long Value)
  • MySQL: Added "CharacterSet" SAConnection option
  • MySQL: Added mysql_thread_init() and mysql_thread_end() API functions
  • MySQL: Added mysql_server_end() call before MySQL client library is released
Bug Fixes
  • Oracle: Fixed bug with SADateTime to Oracle OCIDateTime conversion
  • SQL Server: Fixed bug when it was impossible to fetch several result sets with single query
3.7.17
August 16, 2006
General DB2 InterBase MySQL ODBC Oracle PostgreSQL SQL Server Sybase
New Features
  • General: AIX, HP-UX and MacOS X support improved
  • SQL Server: Added SSPROP_INIT_MARSCONNECTION connection (OLEDB) option
  • PostgreSQL: Server side cursor implemented for 'SELECT ...' statements
  • InterBase: Modified to start transaction only when query executed (thanks Fabrice Aeschbacher)
  • General: New SQLAPI++ data types added: SA_dtUShort and SA_dtULong
  • General: Added SAString methods SAString::MakeUpper(), SAString::MakeLower()
  • General: Experimental 'scrollable cursor' functionality implemented (PostgreSQL, MSSQL, ODBC thanks combit.net)
  • Oracle: UNICODE version uses UCS2 client character set
  • General: Experimental methods SAConnection::Destroy() added (to destroy broken connection)
  • General: Experimental method SAConnection::isAlive() added (to check if a remote database is alive)
  • MySQL: mysql_ping was removed from SAConnection::IsConnected()
  • Oracle: New SAConnection "UseTimeStamp" option (controls if SQLAPI should use Oracle TIMESTAMP functions)
  • SQL Server: DB-Library client included into MinGW build
Bug Fixes
  • General: Fixed SACommand::ParseInputMarkers for '=' parameter name delimiter
  • Oracle: Fixed memory leaks and troubles with BLOB and TIMESTAMP descriptors
  • Oracle: Fixed bug at IoraConnection::CnvtNumericToInternal with numbers like [-]0.001
  • Oracle: Fixed memory leak with temporary BLOBs (thanks Frank Hilliger)
  • ODBC: Fixed column size and precision for SADateTime input parameters
  • Sybase: Fixed "CS_HOSTNAME" connection option (thanks Ulrich Gievers)
  • Sybase: Bug fixed with INTEGER-s on x86-64
  • MySQL: Bug fixed long text/binary procedure parameters
  • Oracle: Fixed bug with procedure datetime parameters
  • DB2: Fixed bug with INTEGER-s on x86-64
  • ODBC: Fixed bug with SAException::ErrMsg() at UNICODE configuration. UNICODE support improved
  • General: Fixed bug at SAString::FormatV(...) on Linux/UNIX (thanks Michael Teske)
  • MySQL: Fixed the procedure parameters parsing code
3.7.16
November 28, 2005
General
Bug Fixes
  • General: SAString::Replace(...) - serious bug fixed
3.7.15
November 18, 2005
General MySQL ODBC Oracle
New Features
  • ODBC: Support for GUID type (thanks Alexander Horak)
  • Oracle: SADateTime fraction support
  • General: SAString::Replace(...) was improved (thanks Arthur Finkel)
Bug Fixes
  • General: Fixed SAString::FormatV(...) (thansk Bernd Holz)
  • MySQL: Fixed the procedure parameters parsing code (thanks Znamenacek Pavel)
3.7.14
October 12, 2005
General InterBase Interbase MySQL Oracle PostgreSQL SQLBase
New Features
  • MySQL: Support for NEWDECIMAL data type
  • SQLBase: Linux/UNIX support
  • MySQL: Added support for a procedure result set
  • InterBase: Boolean support (InterBase v7)
  • PostgreSQL: New connection option "ClientEncoding"
  • Oracle: New connection option "ConnectAs" (SYSDBA or SYSOPER, OCI8 only)
  • General: MinGW (GNU C++ for Win32) support
  • Interbase: New global option "ClientLibraryName" to define the API library name
  • General: Microsoft Platform SDK integration. X86, IA64, AMD64 target support
  • PostgreSQL: field size, precision, scale support (thanks Alexander Horak)
Bug Fixes
  • General: Fixed memory leak in SAConnection destructor (thanks Diane Downie)
  • General: Fixed UNIX implementation of the SAString::Format for 64-bit integer (thanks Boris Daniel)
  • General: SAString::FormatV fixed for ISO C99 va_copy (thanks Mathew Kuzhithattil Aniyan)
3.7.12
May 05, 2005
General DB2 Firebird Interbase MySQL SANumeric SQL Server
New Features
  • SANumeric: 64-bit integer operators and constructor added
  • MySQL: added alpha support for MySQL 5.x procedures
  • SQL Server(OLEDB): MSSQL native error code is returned by SAExeption::ErrNativeCode() now
  • Interbase/Firebird: SADateTime::Fraction() support (thanks Fabrice Aeschbacher)
  • DB2: support for SQL_GRAPHIC, SQL_VARGRAPHIC, SQL_LONGVARGRAPHIC types added
  • General: some improvements for threaded applications
  • General: Unusual (not ".so") extensions for shared libraries can be defined at compilation process
Bug Fixes
  • General: SAConnection::~SAConnection(): possible GPF fixed (thanks Diane Downie)
  • General: fixes to compile with VS.NET 2005 under AMD64 (thanks Peter Klotz)
  • General: SACommand::ParseInputMarkers(...) - bug fixed with ':' symbol in string constants
3.7.11
August 11, 2004
General MySQL ODBC SQL Server Sybase
New Features
  • ODBC: connection-level option added to control ODBC's connection pooling
  • MySQL: added support for MySQL clients version 4.1 and higher
  • MySQL: connection-level options added to control client_flag parameter when connecting to MySQL
  • SQL Server: command-level option added: DBPROP_REMOVEDELETED
  • Sybase: command-level option added: ct_cursor
Bug Fixes
  • General: small memory leak fixed
3.7.10
January 10, 2004
General ODBC Oracle SQL Server
New Features
  • ODBC: bulk fetching support improved as a work-around for some non-compliant drivers
  • Oracle: added support for new date/times types in Oracle 9i
  • Oracle: added read support for interval types. They are defaulted to strings
  • SQL Server: added read support for fields of type VARIANT. They are defaulted to strings
  • General: SAString::Format() - small change to better support variable argument list on some picky UNIX platforms
Bug Fixes
  • General: SAString::Format() - bug fixed with "I64" option implementation on Windows platform
3.7.9
July 13, 2003
Oracle SQL Server
New Features
  • SQL Server: new command related option SSPROP_INIT_APPNAME added
Bug Fixes
  • Oracle: small memory leak fixed with Oracle 9i client
3.7.8
March 02, 2003
Oracle PostgreSQL
New Features
  • PostgreSQL: support for TIMESTAMPTZOID type added
  • Oracle: bulk fetch implementation improved for columns of type NUMBER
3.7.7
December 01, 2002
SQL Server SQLBase
Bug Fixes
  • SQL Server (OLE DB): bug fixed when reading large NTEXT columns
  • SQLBase: bug fixed when using Receive Long String variables in stored procedures
3.7.6
September 21, 2002
MySQL PostgreSQL Sybase
New Features
  • PostgreSQL: int8 datatype support improved
  • Sybase: money datatype support improved
  • MySQL: support for MySQL 4.x client improved
3.7.5
July 20, 2002
General DB2 ODBC Oracle
New Features
  • General: Borland C++ Builder 6 support improved
  • ODBC: new command related option ("PreFetchRows") added
  • Oracle: "PreFetchRows" option implementation improved
Bug Fixes
  • DB2: Bug fixed when fetching with "PreFetchRows" option
3.7.4
July 13, 2002
InterBase Oracle SQL Server
New Features
  • InterBase: new connection related options("TPB_LockResolution", "TPB_AccessMode") added
  • SQL Server (OLE DB): new command related option ("Execute_riid") to set the requested interface for the rowset added
  • Oracle: support for pls_integer and binary_integer types added
3.7.3
June 22, 2002
MySQL PostgreSQL
Bug Fixes
  • PostgreSQL, MySQL: support for binding/retrieving double values improved (bug fixed when current locale's decimal point is not '.')
3.7.2
June 15, 2002
Linux Oracle SQLBase Unix
New Features
  • SQLBase: support added for stored commands
  • Oracle: new parameter and field related options added ("OCI_ATTR_CHARSET_ID", "OCI_ATTR_CHARSET_FORM")
  • Linux/Unix: some changes applied to be compatible with Alpha platform
3.7.1
June 01, 2002
DB2 SQL Server
New Features
  • SQL Server (OLE DB): new connection related option("CoInitializeEx_COINIT") to set the COM library initialization mode added
  • DB2: new command related option added ("ReturnStatus")
Bug Fixes
  • SQL Server (OLE DB): memory leaks fixed in SAConnection::ClientVersion(), SAConnection::ServerVersion() and SAConnection::ServerVersionString()
3.6.9
May 18, 2002
ODBC PostgreSQL Sybase
New Features
  • Sybase: new connection related option ("CS_VERSION") to set the version of Client-Library behavior added
Bug Fixes
  • ODBC: [Linux/Unix] bug fixed when executing DELETEs or UPDATEs that don't affect any rows (function sequence error)
  • PostgreSQL: small memory leak fixed
3.6.8
May 04, 2002
General Oracle
New Features
  • General: Multithreading support improved
Bug Fixes
  • Oracle: [Linux/Unix] bug fixed when calling a stored procedure while server is shutting down
3.6.7
April 20, 2002
General Oracle SQLBase
New Features
  • General: SADateTime::GetCurrentTime() method renamed to SADateTime::currentDateTime()
  • Oracle: support added for logging in using external authentication
Bug Fixes
  • SQLBase: bug fixed with in/out parameters of type NUMBER
  • SQLBase: bug (microseconds truncation) fixed when selecting date/time values
3.6.6
April 06, 2002
DB2 Oracle SQL Server
New Features
  • SQL Server (OLE DB): New command related option("DBPROP_COMMANDTIMEOUT ") to set command time-out added
  • DB2: Support added for stored procedure return status
Bug Fixes
  • Oracle: Bug fixed when selecting ROWID
3.6.5
March 16, 2002
General SQL Server
New Features
  • SQL Server (OLE DB): New command related option ("ICommandPrepare") to control current command preparation added
  • General: _SA macros changed to _TSA macros to be compatible with Microsoft Visual C++.NET
3.6.4
March 07, 2002
InterBase Oracle SQL Server
New Features
  • InterBase: Big and high precision numbers support improved
Bug Fixes
  • Oracle: Memory leak bug when calling a stored procedure with REF CURSOR parameter(s) fixed
  • SQL Server: Bug when selecting text and image fields with PreFetchRows option fixed
3.6.3
February 23, 2002
DB2 Oracle
Bug Fixes
  • Oracle: Bug when binding using setAsNumeric() has been fixed
  • DB2: [Linux/Unix] Bug in NUMERIC and DECIMAL data support has been fixed
3.6.2
February 16, 2002
SQL Server Sybase
New Features
  • Sybase: Support has been added for new OpenClient 12.5 features
  • SQL Server (OLE DB): Some new rowset options have been added
3.6.1
February 09, 2002
General
New Features
  • General: Default parameters value support has been improved
3.5.9
January 29, 2002
Informix InterBase Oracle SQLBase
New Features
  • Oracle, InterBase, SQLBase, Informix: Big and high precision numbers support has been improved
3.5.8
January 12, 2002
Oracle
Bug Fixes
  • Oracle: bug when retrieving numeric values fixed
3.5.7
December 29, 2001
DB2
New Features
  • DB2: big and high precision numbers support has been improved
3.5.6
December 10, 2001
Oracle
Bug Fixes
  • Oracle: bug fixed (access violation) when selecting numeric fileds
3.5.5
December 05, 2001
MySQL Oracle PostgreSQL SQL Server Sybase
New Features
  • Sybase: new command option ("CS_BULK_LOGIN") to describe whether or not a connection can perform bulk copy operations into a database is available
  • Oracle, Sybase, SQL Server, MySQL, PostgreSQL: Big and high precision numbers support has been improved
  • MySQL: reporting precision, scale and nullability has been improved
3.5.4
November 17, 2001
General
New Features
  • General: Documentation improved
3.5.3
November 10, 2001
DB2 Oracle SQL Server
New Features
  • Oracle: new option to specify which overload to call is now available for Oracle command ("Overload")
  • DB2: new option is now available for DB2 command ("PreFetchRow")
  • SQL Server (OLE DB): new option ("SSPROP_INIT_AUTOTRANSLATE") for configuring OEM/ANSI character translation is available
Bug Fixes
  • Oracle: bug fixed when reading data of RAW type
3.5.2
November 03, 2001
InterBase Oracle SQL Server
New Features
  • InterBase: commit management improved
Bug Fixes
  • Oracle (OCI7): native error number reporting fixed
  • SQL Server (OLE DB): bug fixed when reading data of NTEXT type
3.5.1
October 20, 2001
General PostgreSQL SQL Server
New Features
  • PostgreSQL: added PostgreSQL support
  • SQL Server (OLE DB): the ability to use DBPROP_SERVERCURSOR rowset property added
  • General: String and binary data support has been improved
3.4.7
September 15, 2001
InterBase MySQL
New Features
  • MySQL: setting transaction isolation level implemented
Bug Fixes
  • InterBase: bug fixed when binding NULL values
3.4.6
September 01, 2001
General
New Features
  • General: C type 'bool' support added
3.4.4
August 18, 2001
SQL Server
New Features
  • SQL Server (OLE DB): COM initialization improved
3.4.3
July 24, 2001
InterBase SQL Server
New Features
  • InterBase: FireBird client support added
Bug Fixes
  • SQL Server (DB-Library): error when returning output parameters from stored procedures is fixed
3.4.2
July 21, 2001
Sybase
Bug Fixes
  • Sybase: [Sun Solaris] error when connecting is fixed
3.4.1
July 14, 2001
General MySQL Sybase
New Features
  • MySQL: added MySQL suport
  • Sybase: New option is now available for Sybase command (PreFetchNext)
  • General: Documentation improved
3.3.4
July 07, 2001
InterBase Oracle SQL Server SQLBase
Bug Fixes
  • InterBase: error (stack overflow) when calling stored procedures with no parameters is fixed
  • Oracle, SQLBase: SACommand::isResultSet implementation fixed. Now it returns false after result set is completely fetched
  • SQL Server (OLE DB): bug fixed when reading text or image collumns with SQL Server 7.0 client
3.3.2
June 23, 2001
General
New Features
  • General: Documentation improved
3.3.1
June 16, 2001
General DB2 SQL Server
New Features
  • SQL Server: Support for using SQL Server OLE DB API added. Default API for accessing SQL Server changed from DB-Library to OLE DB
  • DB2: fetching multiple result sets from stored procedures implemented
  • General: SACommand::FetchParamsNext method deprecated
  • General: Documentation improved
3.2.5
June 02, 2001
General SQL Server
New Features
  • SQL Server: the ability to use trusted connection added
  • General: Numeric data reading methods now support type conversion from string data
  • General: Documentation improved
3.2.4
May 19, 2001
Sybase
New Features
  • Sybase: minor changes made to improve multi-threading support
3.2.3
April 29, 2001
General
New Features
  • General: Minor changes made in SQLAPI++ source codes to make it compatible with Sun Workshop Pro compiler
3.2.2
April 21, 2001
InterBase
Bug Fixes
  • InterBase: Truncation of VARCHAR fields. Bug fixed
3.2.1
April 15, 2001
General Oracle
New Features
  • Oracle 8i: Ability to bind BLob(CLob) parameters in stored procedures is implemented
Bug Fixes
  • General: Sun SPARC Solaris - SIGBUS error (non-alignment of numeric data) - bug fixed
3.1.6
April 08, 2001
SQL Server
Bug Fixes
  • SQL Server: bug with smalldatetime type fixed
3.1.5
March 31, 2001
SQL Server
New Features
  • SQL Server: Ability to connect to named instances of SQL Server 2000 added
3.1.4
March 25, 2001
Sybase
New Features
  • Sybase: New options are now available for Sybase connection ("CS_PACKETSIZE", "CS_APPNAME", "CS_HOSTNAME")
3.1.3
March 18, 2001
Oracle SQL Server Sybase
Bug Fixes
  • Oracle: Executing a function in Oracle 8i resulted in ORA-01426. Bug fixed
  • SQL Server: Bug fixed when binding parameters to a command with "OpenCursor" option set
  • Sybase: Executing a stored procedure through "Exec" statement resulted in access violation. Bug fixed
3.1.2
March 11, 2001
General DB2 Informix InterBase ODBC
New Features
  • General: Documentation improved (Server Specific Guide)
  • InterBase: Support for database connection cache added
Bug Fixes
  • DB2, Informix, ODBC: native error code returned by SAException::NativeError() was invalid. Bug fixed
3.1.1
February 25, 2001
ODBC Oracle Unix)
Bug Fixes
  • Oracle 8: Access violation when updating/inserting CLob fields. Bug fixed
  • Oracle (Linux/Unix): Error "Unimplemented or unreasonable conversion requested" when working with output (return) parameters is fixed
  • Oracle: update/insert SQL statement with two or more BLob (CLob) parameters results in "OCI_INVALID_HANDLE" exception. Bug fixed
  • ODBC: bug with DateTime values fixed
3.0.1
February 11, 2001
General Oracle
New Features
  • General: Unix version released
  • Oracle: Support for Oracle REF CURSORs and nested cursors added
2.3.11
January 28, 2001
General SQL Server SQLBase
New Features
  • SQL Server: "Open Cursor" option improved
Bug Fixes
  • General: SAString::Right method: bug fixed
  • SQLBase: Automatic detecting of stored procedure parameters was incorrect when parameter's name include numeric digits, underscore (_) or special characters (#, @ or $). Bug fixed
  • SQL Server: [version 7, version 2000] data type for datetime parameters in stored procedures has been detected as SA_dtUnknown. Bug fixed
2.3.10
January 21, 2001
Sybase
New Features
  • Sybase: support for returning status result code from stored procedures
2.3.9
January 07, 2001
ODBC SQL Server
Bug Fixes
  • SQL Server: bug fixed when calling a stored procedure with "owner.proc_name" syntax on SQL Server 2000
  • ODBC (MS Access): bug fixed when binding long data
2.3.8
December 27, 2000
SQL Server
New Features
  • SQL Server: BIT datatype support added
Bug Fixes
  • SQL Server: bug (assertion) fixed when working with DECIMAL or NUMERIC fields in debug version
2.3.7
December 08, 2000
General
New Features
  • General: Cancelling queries support added
2.3.6
November 29, 2000
Informix
Bug Fixes
  • Informix: error "String data right truncation" when binding string parameters is fixed
2.3.5
November 19, 2000
SQL Server
New Features
  • SQL Server: Support for using DB-Library cursor functions added
2.3.4
November 12, 2000
InterBase
New Features
  • InterBase: Support for client character set declaring added
  • InterBase: Support for connection with a role added
2.3.3
November 05, 2000
General
New Features
  • General: Date/time support improved. SADateTime::GetCurrentTime method added
2.3.2
October 29, 2000
General SQLBase
New Features
  • SQLBase: Support for Cursor-context preservation
  • General: SAString &SAConnection::Option(const SAString&) is replaced by SAConnection::setOption
  • General: SAString &SACommand::Option(const SAString&) is replaced by SACommand::setOption
2.3.1
October 19, 2000
InterBase
New Features
  • InterBase: Support for SQL Dialect 2 and 3 added. SQL Dialect is now customizable
Bug Fixes
  • InterBase: Bug fixed when reading DECIMAL and NUMERIC fields from database
2.2.1
October 15, 2000
General
New Features
  • General: Fraction of a second (milli, micro, nano seconds) support added
  • General: Date/time support improved
2.1.1
October 06, 2000
General
New Features
  • General: Date/time support improved
2.0.1
September 26, 2000
General DB2 Informix Oracle
New Features
  • General: Linux version released
  • Oracle OCI7: multi-threaded support added
  • General: Documentation is improved. A great number of examples added
Bug Fixes
  • Informix: error when calling stored procedures with no parameters is fixed
  • Informix: error when describing stored procedure input parameters is fixed
  • Informix, DB2: GPF when handling errors fixed
1.6.1
September 05, 2000
General SQL server Sybase
New Features
  • Sybase: returning multiple result sets from stored procedure or batch is implemented
  • SQL server: returning multiple result sets from stored procedure or batch is implemented
Bug Fixes
  • General: Error when compiling with Borland compilers using data alignment other than 8 bytes fixed
1.5.1
August 25, 2000
General DB2 Informix ODBC Oracle SQL Server SQL server Sybase
New Features
  • Sybase: added support (both ASE and ASA)
  • Oracle8: Error reporting improved when calling non-existent procedure(function) from existent package (f.ex., sys.dbms_output.aaaaaa)
  • SQL server: the ability to connect to default database is implemented
  • General: Microsoft VC++ 5.0 backward compatible
Bug Fixes
  • SQL Server: SAException::ErrNativeCode always returned 0 (not native error code). Fixed
  • DB2, Informix, ODBC: bug fixed when calling stored procedures with schema (f. ex., tester.TestProc)
  • Oracle: 7.3.3 client - loading error fixed
  • DB2, Informix, ODBC: bug fixed when a searched update or delete statement that does not affect any rows is executed
  • DB2, Informix, ODBC: bug when returning strings from stored procedures fixed
  • General: Error when linking with Borland compilers fixed
1.4.1
July 31, 2000
General Informix
New Features
  • Informix: added support
  • General: Documentation improved
1.3.1
July 20, 2000
DB2 Oracle SQL Server
New Features
  • DB2: added support
  • Oracle: BFILE support in Oracle OCI8
Bug Fixes
  • Oracle: Bug when binding BLobs fixed
  • SQL Server: Bug when reading timestamp fields fixed
1.2.1
July 14, 2000
General ODBC
New Features
  • General: Possibility of getting error offset (SAExecption::ErrPos)
  • General: Autocommit management (SAConnection::AutoCommit and SAConnection::setAutoCommit)
  • General: Documentation improved
Bug Fixes
  • ODBC: Bug when fetching character data (in some cases data can be truncated) fixed
1.1.1
July 10, 2000
General SQL Server
New Features
  • General: Support for managing transaction isolation levels added
  • SQL Server: Transaction policy on SQL Server changed. Now all commands from one connection are in the same transaction
  • General: Documentation improved
Bug Fixes
  • General: Reported bugs fixed
1.0.1
June 19, 2000
General
New Features
  • General: the first version released