Below is the complete release notes log:
5.3.4
September 09, 2024
General
Bug Fixes
- General: Fixed default buffer size used for the long/LOB data writing (thanks Filippo Capizzi)
5.3.3
August 31, 2024
General DuckDB ODBC SQLServer(ODBC)
New Features
- SQLServer(ODBC): Added
SA_STATIC_MSSQL
build option - ODBC: Added
SA_STATIC_ODBC
build option - DuckDB: Updated to version 1.0, duckdb_interrupt is used for
SACommand::Cancel
Bug Fixes
- General: Fixed the trace message formatting bug when result set fields parsed and SA_USE_STL=1 (thanks Johannes Lipp)
- General: Fixed bug when the text converted twice for CLob/LongChar data binding (thanks Vanhala Tuomas)
5.3.2
May 18, 2024
General Oracle SQLServer
New Features
- General: Throw SAException when too large SAString allocation requested (thanks Michael Gandlin)
Bug Fixes
- Oracle: Fixed the bug with an exception thrown after the result set fetched (thanks Karoly Harmath)
- SQLServer: Fixed crashing at the connection string parsing when the server name contains semicolon (thanks Michael Gandlin)
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 toSQL_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
andSAPI::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()
andSAGlobals::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 functionSQL_SUCCESS_WITH_INFO
results - SQL Server (ODBC): Added
ssNCliAPI::SetMessageCallback
method that allows to log API functionSQL_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()
andSAGlobals::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
andSADateTime::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 addedSAOptions::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 fixesSACommand::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
andSQLDA_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
andOCI_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()
andSAException::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 ofSQL_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
andIssOleDbCursor::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
andSAGlobals::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
andMYSQL_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 ofSQLT_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()
andSACommand::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 thenSQLT_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
andSQL_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 tosybAPI::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
andMYSQL_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
andCS_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 withSQL_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
andBINARY_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
andCLIENT_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) andSACommand::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()
andSAConnection::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 toSADateTime::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