看到SQLAPI的发布历史,好长好长。。。。。。 想到对于Bug也要有正确的心态,对于新需求也要平心的去看待;人,是否也一样,也需要不断完善。 否定,肯定,再否定,再肯定,再再否定。。。
SQLAPI++ Library
Full History
20 December 2012 Version 4.0.3 of SQLAPI++ library released.
New features:
Informix: Added Unicode support. SQLServer: Use ODBC API by default instead of OLEDB, ODBC client allowed with MinGw. General: Fixed bug with dummy data converter that can produce LOB/Long data reading problems (thanks Peter Klotz). SQLite: Start transaction indirectly before the first query executed (thanks Frank Hilliger). Sybase: Added 15.7 context support. DB2: Fixed LOB/LONG field reading (thanks Fernand Alcatrao). SQLServer: ODBC API, fixed bug with connection string parsing (thanks Hide Ishikuri). Sybase: Don't using read only cursor by default (thanks Ian Hodgkinson). DB2: Use trusted connection when username is empty. General: Fixed procedure parameters binding (thanks Joel Baby Jose). 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. 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).
29 October 2012 Version 4.0.2 of SQLAPI++ library released.
New features:
General: Fixed SAString binary length calculation (thanks Christian Schmitz). 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. SQLServer: 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). SQLServer: Added SSPROP_INIT_TRUST_SERVER_CERTIFICATE OLEDB connection option. SQLite: Added sqlite3_table_column_metadata API fuinction. MySQL: Added function support. 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). SQLServer: 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: Avoided double conversion of UTF-8 and UTF-16 data (SA_STRING_EXT required, thanks Christian Schmitz). General: Fixed UTF-16 code (wrong conversion). General: SONAME added for the shared library (thanks Pobinger Gerhard Stefan).
1 June 2012 Version 4.0.1 of SQLAPI++ library released.
New features:
General: SA_MINDEP build option replaced with SA_RUNTIME=(dynamic|static). MySQL: Fixed VARCHAR field data truncation with statement API (thanks Abhay Rawat). Oracle: Fixed NCLOB/NCHAR/NVARCHAR reading for UTF16 encoding. 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. PostgreSQL: Fixed time string parsing(thanks Andrew Smolko). PostgreSQL: Fixed string escaping. ODBC: Fixed SQLDriverConnect related bug (thanks Mike Moening). 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). SQLServer: Ready for SQL Server 2012 Native Client. Oracle: Function returned value parameter name changed from "Result" to "RETURN_VALUE".
4 November 2011 Version 3.8.3 of SQLAPI++ library released.
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). 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). 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). DB2: Fixed bug with binding an empty LOB (thanks Martin Rötzl). SQLServer: 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).
22 June 2011 Version 3.8.2 of SQLAPI++ library released.
New features:
MySQL: Fixed the field describing bug (thanks Brad DeJong). General: General: samisc.h header moved into general include folder (SAMutex, SACriticalSectionScope classes). General: Added SA_ODBC_INCLUDES build option. ODBC: Fixed name buffer length for SQLDescribeCol API function. 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. 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. Interbase: Implemented SA_UNICODE_WITH_UTF8 option. Sybase: Fixed SA_UNICODE_WITH_UTF8 option implementation. General: SADateTime::SADateTime() constructor is private now. General: Added SAGlobals::StringToClient and SAGlobals::ClientToString methods. General: Fixed Borland C++ build files. General: Added SA_STATIC_SYBASE build option.
20 February 2011 Version 3.8.1 of SQLAPI++ library released.
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. PostgreSQL: Fixed bug with the application name parameter (thanks Bjoern Eggstein). General: Added conversion from numeric value into SAValueRead::asBool method. SQLServer: 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).
26 January 2011 Version 3.7.35 of SQLAPI++ library released.
New features:
Oracle: Fixed LOB reading with OCI 10 and above (thansk Anca Elena Arhip).
23 January 2011 Version 3.7.34 of SQLAPI++ library released.
New features:
SQLServer: OLEDB, fixed the memory leak at 'Check' function (SAExecption throwing, thanks Michael Soliman). SQLServer: OLEDB, removed assertion for SQLServer 2008 date and time types. ODBC: FreeTDS, fixed the bug with missing first character of the long text/string data. 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). General: Fixed bug with SAValueRead::asBool() on BigEndian platforms (thansk Vlad Romascanu). PostgreSQL: Added 'E' prefix for binary sequnces passed to server version 8.2.4 and above. MySQL: Fixed again binding of the binary data (thanks Martin Herb).
31 August 2010 Version 3.7.33 of SQLAPI++ library released.
New features:
SQLServer: OLEDB, fixed parameter date type name for ICommandWithParameters::SetParameterInfo (thanks Michael Soliman). General: SACommand::Param(int) method performance improved. 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: 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). Sybase: Fix for 64-bit DLL names under Windows (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).
2 July 2010 Version 3.7.32 of SQLAPI++ library released.
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"). MySQL: Fixed bug with the binding of zero-length blob- and byte- fields (thanks Taneli Otala). Sybase: Connection options "SYBINTL.LIBS", "SYBCOMN.LIBS", "SYBTCL.LIBS", "SYBCT.LIBS", "SYBCS.LIBS" added. General: Fixed problem with MacOS X and asctime_r function (thanks Michael Dickey). 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.
24 March 2010 Version 3.7.31 of SQLAPI++ library released.
New features:
ODBC: Numeric data truncation bug fixed (thanks Gebert, Alfred). SQLServer: OLEDB and ODBC, fixed bug with long/LOB data binding (thanks Thomas Häußermann). SQLServer: OLEDB, added DBPROP_COMMITPRESERVE command parameter. ODBC: fixed bug with long/LOB data binding. Sybase: Bind ' ' character for empty procedure parameter strings (thanks Vlad Imshenetskiy). General: Borland C++ 5.2 fixes.
10 February 2010 Version 3.7.30 of SQLAPI++ library released.
New features:
General: Added new methods - SAConnection::Reset() and SACommand::Reset(). 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. SQLServer: Fixed bug with unsigned 32-bit integer parameters (thanks Kyle Stock). SQLServer: Fixed problem with [n]varchar|varbinary(max) output parameters (thanks Alfred Gebert). SQLServer: Fixed bug with SAParam::setAsBool method (thanks Jacob Pedersen). General: Performance improved (Christian Zink). Sybase: Fixed bug in error handling (thanks Volodymyr Drobot). MySQL: Fixed bug with UTF-8 client charcter set and BLob binding (Jason Tai). SQLServer: Fixed SA_tdBool data binding (thanks Jacob Pedersen). DB2: Fixed problem with prefetching on 64-bit platforms (thanks Cal Heldenbrand). Oracle: Added experimental scrollable cursor support (thanks combit.net and Alexander Horak). SQLServer: 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.
14 October 2009 Version 3.7.29 of SQLAPI++ library released.
New features:
General: Added Borland compilation option SA_MINDEP. Now dynamic RTL is used by default with bcc compiler. DB2: Fixed bug with Unicode DB2 data type(vargraphic) interpretation. General: Fixed Borland C++ SQLServer OLEDB compilation problem (sa_max() using instead of max()). SQLite: Fixed bug at the text data conversion with Unicode configuration (thanks Holger Fischer). SQLite: Added new SAConection option "SQLiteDateTypes" (thanks Jonathan Gonzalez Encarnacion). 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). SQLite: Added declared type processing if there are no any rows at the result set (thanks Jonathan Gonzalez Encarnacion). SQLServer: 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).
27 May 2009 Version 3.7.28 of SQLAPI++ library released.
New features:
SQLServer: Added SAConnection OLEDB options "CompactEdition.3.0" and "CompactEdition.3.5" (thanks Johannes Maly). SQLServer: 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). SQLServer: OLEDB, fixed bug with empty second result set at the same scrollable SACommand (thanks Bjoern Eggstein). 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). MySQL: Fixed bug when it was impossible to process several result sets those a procedure returns (thanks Klass, Markus). Oracle: Added a code that uses new OCILogRead2 when available (thanks Jeff Huttel). MySQL: Fixed problem with prepared statements and different MYSQL_BIND versions (thanks Alexander Petrossian). General: Several performance improvements (thanks Mike Moening). 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). General: For 'SACommand::Field(const SAString &sField)' added the second cycle for the field searching by short name (thanks Felix Nawothnig). Sybase: Fixed long text field reading (SA_UNICODE). 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). SQLServer: Added 2008 OLEDB client support. SQLServer: Added 2008 new data type support (thanks Justin Matthews). SQLServer: Added fixes those allows to use "ICommandPrepare" = "skip" with procedures (without preparing there was string data truncation, 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). Oracle: Fixed double values binding - using SQLT_BDOUBLE rather then SQLT_FLT (thanks Alan Hardin).
22 January 2009 Version 3.7.27 of SQLAPI++ library released.
New features:
General: Now 'SANumeric::operator double() const' again uses strtod() variant but with '.' replaced by localeconv()->decimal_point (thanks Alasdair Richardson). 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). SQLServer: Fixed bug with scrollable statement reusing that results in wrong result set processing (thanks Alexander Horak).
3 December 2008 Version 3.7.26 of SQLAPI++ library released.
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. SQLServer: Fixed bug with numeric parameter presicion (truncation, thanks Jean-Claude Chauve). PostgreSQL: Fixed bug with SAParam::setAsULong (thanks Vlad Romascanu). Sybase: Added 'date' type support for the stored procedure parameters (thanks Vlad Imshenetskiy). Sybase: Fixed problem with the procedure parameters describing when procedure is located in another database (Georgiy Pakhutin). ODBC: Added new connection options - SQL_DRIVER_PROMPT,SQL_DRIVER_COMPLETE,SQL_DRIVER_COMPLETE_REQUIRED,DSN. SQLServer: Fixed bug with procedure preparation.
12 September 2008 Version 3.7.25 of SQLAPI++ library released.
New features:
General: saConnectionHandler_t callback added at SAConnection::Connect method. SQLServer: SQLCE, "CreateDatabase" option added. SQLServer: SQLCE, use SA_dtString program type for uniqueidentifier fields. Oracle: Fixed memory leak when SYS_REFCURSOR parameters returns a cursor field (thanks mera.ru) 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. 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: Added new API functions - sqlite3_threadsafe and sqlite3_last_insert_rowid. SQLite: Fixed wrong API initialization (thanks Peter Klotz). SQLite: Added "BusyTimeout" connection option. General: Added version info into sqlapi.dll (thanks Frank Hilliger). Sybase: SACommand::Cancel should work now (thanks Georgiy Pakhutin). SQLServer: OLEDB, SACommand::Cancel works with multiple results (required SQLNCLI, thanks Georgiy Pakhutin). SQLServer: 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). DB2: Added mapping DECFLOAT<->SA_dtString(thanks Dmitry Chaikovsky).
26 February 2008 Version 3.7.24 of SQLAPI++ library released.
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. Oracle: CLOB/BLOB truncation bug fixed. Oracle: REFCURSOR memory leak problem fixed. 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). SQLServer: SQLOLEDB layer modified for Compact Edition 3.5. SQLServer: Added Compact Edition specific options. Now CE layer is available at UNICODE version only. DB2: Fixed the problem with column names (UNICODE version, thanks Adrian Studer). General: Fixed the problem with the SANumeric rounding (thanks Mike Moening). MySQL: Added SAInterval parameter processing (thanks Frank Hilliger).
12 October 2007 Version 3.7.23 of SQLAPI++ library released.
New features:
PostgreSQL: The error message includes the diagnostic trouble code now (thanks Helmut Ebersmann). 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). SQLServer: IssOleDbCursor::SetParameterInfo fixed for correct type name (thanks to Phillip at spectorsoft.com). SQLServer: 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 (thansk Beaty, Robert). 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). General: Build scripts updated. More samples are provided now.
25 June 2007 Version 3.7.22 of SQLAPI++ library released.
New features:
PostgreSQL: Fixed string escaping bug (buffer size too small, thanks combit.net). SQL Server: Added statement preparation for each executing when option "ICommandPrepare" = "SetParameterInfo" used (thanks to Chris Hecker). 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). ODBC: The code modified to work correctly with long/blob fields under Linux and FreeTDS driver. ODBC: SAConnection::isAlive() uses SQLGetConnectAttr/SQL_ATTR_CONNECTION_DEAD now. SQL Server: Added SAConnection parameter "OLEDBProvider" (SQLOLEDB connection).
24 May 2007 Version 3.7.21 of SQLAPI++ library released.
New features:
Oracle: "APPNAME" SAConnection parameter added (OCI_ATTR_CLIENT_IDENTIFIER is used, thanks Frank Hilliger). MySQL: Fixed bug with SAConnection::isAlive(). SQL Server: "ICommandPrepare" SACommand parameter value "SetParameterInfo" added (fixes KB235053 ). MySQL: "UseStatement" SACommand parameter added (SQLAPI++ can use MySQL statement API now). 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).
30 March 2007 Version 3.7.20 of SQLAPI++ library released.
New features:
Sybase: Version 15.x support for Linux/UNIX (.so names changed - thanks Ronan O'Sullivan). Oracle: Crash fixed with the OCIDateTime descriptor freeing. 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. SQL Server (OLDEDB): x86_64 fixes. DB2: All diagnostic messages are combined into SAException error text now. Sybase: CS_HAFAILOVER connection parameter added. General: Fixed a SADateTime::TmFromDate problem with the rounding. DB2: XML type support added. DB2: Fixed x86_64 support.
28 December 2006 Version 3.7.19 of SQLAPI++ library released.
New features:
Oracle: Added procedure/function support for Oracle PL/SQL BOOLEAN type. Oracle: Support for BINARY_FLOAT and BINARY_DOUBLE types. Oracle: Memory leak fixed with SYS_REFCURSOR & TIMESTAMP/BLOB/CLOB fields. 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. SQLBase: Fixed access violation at sqldes() C API function with SQLBase version 10. MySQL: Added support for the 'bit' type. 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.
27 September 2006 Version 3.7.18 of SQLAPI++ library released.
New features:
General: Added SACommand::operator << (unsigned short Value) and SACommand::operator << (unsigned long Value) MySQL: Added "CharacterSet" SAConnection option. Oracle: Fixed bug with SADateTime to Oracle OCIDateTime conversion. SQLServer: Fixed bug when it was impossible to fetch several result sets with single query. MySQL: Added mysql_thread_init() and mysql_thread_end() API functions. MySQL: Added mysql_server_end() call before MySQL client library is released.
16 August 2006 Version 3.7.17 of SQLAPI++ library released.
New features:
General: AIX, HP-UX and MacOS X support improved. SQLServer: 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). General: Fixed SACommand::ParseInputMarkers for '=' parameter name delimiter. Oracle: Fixed memory leaks and troubles with BLOB and TIMESTAMP descriptors. Oracle: UNICODE version uses UCS2 client character set. Oracle: Fixed bug at IoraConnection::CnvtNumericToInternal with numbers like [-]0.001 Oracle: Fixed memory leak with temporary BLOBs (thanks Frank Hilliger). 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(). 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: New SAConnection "UseTimeStamp" option (controls if SQLAPI should use Oracle TIMESTAMP functions). 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). SQLServer: DB-Library client included into MinGW build. MySQL: Fixed the procedure parameters parsing code.
28 November 2005 Version 3.7.16 of SQLAPI++ library released.
New features:
General: SAString::Replace(...) - serious bug fixed.
18 November 2005 Version 3.7.15 of SQLAPI++ library released.
New features:
General: Fixed SAString::FormatV(...) (thansk Bernd Holz). ODBC: Support for GUID type (thanks Alexander Horak). Oracle: SADateTime fraction support. General: SAString::Replace(...) was improved (thanks Arthur Finkel). MySQL: Fixed the procedure parameters parsing code (thanks Znamenacek Pavel).
12 October 2005 Version 3.7.14 of SQLAPI++ library released.
New features:
General: Fixed memory leak in SAConnection destructor (thanks Diane Downie). MySQL: Support for NEWDECIMAL data type. SQLBase: Linux/UNIX support. General: Fixed UNIX implementation of the SAString::Format for 64-bit integer (thanks Boris Daniel). 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: SAString::FormatV fixed for ISO C99 va_copy (thanks Mathew Kuzhithattil Aniyan). General: Microsoft Platform SDK integration. X86, IA64, AMD64 target support. PostgreSQL: field size, precision, scale support (thanks Alexander Horak).
5 May 2005 Version 3.7.12 of SQLAPI++ library released.
New features:
SAConnection::~SAConnection(): possible GPF fixed (thanks Diane Downie). 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: fixes to compile with VS.NET 2005 under AMD64 (thanks Peter Klotz). General: some improvements for threaded applications. General: Unusual (not ".so") extensions for shared libraries can be defined at compilation process. SACommand::ParseInputMarkers(...): bug fixed with ':' symbol in string constants.
11 August 2004 Version 3.7.11 of SQLAPI++ library released.
New features:
ODBC: connection-level options added ("SQL_ATTR_CONNECTION_POOLING", "SQL_ATTR_CP_MATCH") to control ODBC's connection pooling. For more information see ODBC - Connection and command options . 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. The following options added: CLIENT_COMPRESS, CLIENT_FOUND_ROWS, CLIENT_IGNORE_SPACE, CLIENT_INTERACTIVE, CLIENT_LOCAL_FILES, CLIENT_NO_SCHEMA, CLIENT_ODBC For more information see MySQL - Connection and command options . SQL Server: command-level option added: "DBPROP_REMOVEDELETED". For more information see SQL Server (OLE DB) - Connection and command options . Sybase: command-level option added: "ct_cursor". For more information see Sybase - Connection and command options . General: small memory leak fixed.
10 January 2004 Version 3.7.10 of SQLAPI++ library released.
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. SAString:Format(): bug fixed with "I64" option implementation on Windows platform. SAString::Format(): small change to better support variable argument list on some picky UNIX platforms.
13 July 2003 Version 3.7.9 of SQLAPI++ library released.
New features:
2 March 2003 Version 3.7.8 of SQLAPI++ library released.
New features:
PostgreSQL: support for TIMESTAMPTZOID type added. Oracle: bulk fetch implementation improved for columns of type NUMBER.
1 December 2002 Version 3.7.7 of SQLAPI++ library released.
New features:
SQL Server (OLE DB): bug fixed when reading large NTEXT columns. SQLBase: bug fixed when using Receive Long String variables in stored procedures.
21 September 2002 Version 3.7.6 of SQLAPI++ library released.
New features:
PostgreSQL: int8 datatype support improved. Sybase: money datatype support improved. MySQL: support for MySQL 4.x client improved.
20 July 2002 Version 3.7.5 of SQLAPI++ library released.
New features:
Borland C++ Builder 6 support improved. ODBC: new command related option ("PreFetchRows") added. For more information see ODBC - Connection and command options . DB2: Bug fixed when fetching with "PreFetchRows" option. Oracle: "PreFetchRows" option implementation improved.
13 July 2002 Version 3.7.4 of SQLAPI++ library released.
New features:
22 June 2002 Version 3.7.3 of SQLAPI++ library released.
New features:
PostgreSQL, MySQL: support for binding/retrieving double values improved(bug fixed when current locale's decimal point is not '.').
15 June 2002 Version 3.7.2 of SQLAPI++ library released.
New features:
1 June 2002 Version 3.7.1 of SQLAPI++ library released.
New features:
18 May 2002 Version 3.6.9 of SQLAPI++ library released.
New features:
ODBC (iODBC on Linux/Unix): bug fixed when executing DELETEs or UPDATEs that don't affect any rows (function sequence error). PostgreSQL: small memory leak fixed. Sybase: new connection related option ("CS_VERSION") to set the version of Client-Library behavior added. See Sybase - Connection and command options.
4 May 2002 Version 3.6.8 of SQLAPI++ library released.
New features:
Oracle (Linux/Unix): bug fixed when calling a stored procedure while server is shutting down. Multithreading support improved.
20 April 2002 Version 3.6.7 of SQLAPI++ library released.
New features:
SADateTime::GetCurrentTime() method renamed to SADateTime::currentDateTime() . SQLBase: bug fixed with in/out parameters of type NUMBER. SQLBase: bug (microseconds truncation) fixed when selecting date/time values. Oracle: support added for logging in using external authentication.
6 April 2002 Version 3.6.6 of SQLAPI++ library released.
New features:
16 March 2002 Version 3.6.5 of SQLAPI++ library released.
New features:
7 March 2002 Version 3.6.4 of SQLAPI++ library released.
New features:
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. InterBase: Big and high precision numbers support improved.
23 February 2002 Version 3.6.3 of SQLAPI++ library released.
New features:
Oracle: Bug when binding using setAsNumeric() fixed. DB2 (Linux/Unix): Bug in NUMERIC and DECIMAL data support fixed.
16 February 2002 Version 3.6.2 of SQLAPI++ library released.
New features:
9 February 2002 Version 3.6.1 of SQLAPI++ library released.
New features:
29 January 2002 Version 3.5.9 of SQLAPI++ library released.
New features:
Big and high precision numbers support improved (Oracle, InterBase, SQLBase, Informix).
12 January 2002 Version 3.5.8 of SQLAPI++ library released.
New features:
Oracle: bug when retrieving numeric values fixed.
29 December 2001 Version 3.5.7 of SQLAPI++ library released.
New features:
DB2: big and high precision numbers support improved.
10 December 2001 Version 3.5.6 of SQLAPI++ library released.
New features:
Oracle: bug fixed (access violation) when selecting numeric fileds.
5 December 2001 Version 3.5.5 of SQLAPI++ library released.
New features:
Sybase: new option to describe whether or not a connection can perform bulk copy operations into a database is now available for Sybase connection ("CS_BULK_LOGIN"). See SAConnection::setOption . Big and high precision numbers support improved (Oracle, Sybase, SQL Server, MySQL and PostgreSQL). New type SA_dtNumeric added. SeeSADataType_t enum . MySQL: reporting precision, scale and nullability improved.
17 November 2001 Version 3.5.4 of SQLAPI++ library released.
New features:
10 November 2001 Version 3.5.3 of SQLAPI++ library released.
New features:
Oracle: new option to specify which overload to call is now available for Oracle command ("Overload"). See SACommand::setOption . Oracle: bug fixed when reading data of RAW type. DB2: new option is now available for DB2 command ("PreFetchRow"). For more information see: SACommand::setOption . SQL Server (OLE DB): new option ("SSPROP_INIT_AUTOTRANSLATE") for configuring OEM/ANSI character translation is available. SeeSAConnection::setOption .
3 November 2001 Version 3.5.2 of SQLAPI++ library released.
New features:
InterBase: commit management improved. New option is now available for InterBase connection ("CommitRetaining"). See SAConnection::setOption . Oracle (OCI7): native error number reporting fixed. SQL Server (OLE DB): bug fixed when reading data of NTEXT type.
20 October 2001 Version 3.5.1 of SQLAPI++ library released.
New features:
15 September 2001 Version 3.4.7 of SQLAPI++ library released.
New features:
InterBase: bug fixed when binding NULL values. MySQL: setting transaction isolation level implemented.
1 September 2001 Version 3.4.6 of SQLAPI++ library released.
New features:
18 August 2001 Version 3.4.4 of SQLAPI++ library released.
New features:
SQL Server (OLE DB): COM initialization improved.
24 July 2001 Version 3.4.3 of SQLAPI++ library released.
New features:
SQL Server (DB-Library): bug when returning output parameters from stored procedures fixed. InterBase: FireBird client support added.
21 July 2001 Version 3.4.2 of SQLAPI++ library released.
New features:
Sybase (Sun Solaris): error when connecting fixed. ODBC: returning multiple result sets from stored procedure or batch implemented.
14 July 2001 Version 3.4.1 of SQLAPI++ library released.
New features:
7 July 2001 Version 3.3.4 of SQLAPI++ library released.
New features:
InterBase: bug (stack overflow) when calling stored procedures with no parameters 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.
23 June 2001 Version 3.3.2 of SQLAPI++ library released.
New features:
16 June 2001 Version 3.3.1 of SQLAPI++ library released.
New features:
2 June 2001 Version 3.2.5 of SQLAPI++ library released.
New features:
19 May 2001 Version 3.2.4 of SQLAPI++ library released.
New features:
Sybase: minor changes made to improve multi-threading support.
29 April 2001 Version 3.2.3 of SQLAPI++ library released.
New features:
Minor changes made to SQLAPI++ source codes to make it compatible with Sun Workshop Pro compiler.
21 April 2001 Version 3.2.2 of SQLAPI++ library released.
New features:
InterBase: Truncation of VARCHAR fields. Bug fixed.
15 April 2001 Version 3.2.1 of SQLAPI++ library released.
New features:
Sun SPARC Solaris: SIGBUS error (non-alignment of numeric data). Bug fixed. Oracle 8i: Ability to bind BLob(CLob) parameters in stored procedures is implemented.
8 April 2001 Version 3.1.6 of SQLAPI++ library released.
New features:
SQL Server: bug with smalldatetime type fixed.
31 March 2001 Version 3.1.5 of SQLAPI++ library released.
New features:
SQL Server: Ability to connect to named instances of SQLServer 2000 added. For more information see: SAConnection::Connect
25 March 2001 Version 3.1.4 of SQLAPI++ library released.
New features:
Sybase: New options are now available for Sybase connection ("CS_PACKETSIZE", "CS_APPNAME", "CS_HOSTNAME"). For more information see:SAConnection::setOption
18 March 2001 Version 3.1.3 of SQLAPI++ library released.
New features:
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.
11 March 2001 Version 3.1.2 of SQLAPI++ library released.
New features:
Documentation improved. See: Server Specific Guide DB2, Informix, ODBC: native error code returned by SAException::NativeError() was invalid. Bug fixed. InterBase: Support for database connection cache added. See:SAConnection::setOption
25 February 2001 Version 3.1.1 of SQLAPI++ library released.
New features:
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.
11 February 2001 Version 3.0.1 of SQLAPI++ library released.
New features:
28 January 2001 Version 2.3.11 of SQLAPI++ library released.
New features:
SAString::Right : 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: "Open Cursor" option improved. See: SACommand::setOption . SQL Server (version 7, version 2000): data type for datetime parameters in stored procedures has been detected as SA_dtUnknown. Bug fixed.
21 January 2001 Version 2.3.10 of SQLAPI++ library released.
New features:
Sybase: support for returning status result code from stored procedures.
7 January 2001 Version 2.3.9 of SQLAPI++ library released.
New features:
SQLServer: bug fixed when calling a stored procedure with "owner.proc_name " syntax on SQLServer 2000. ODBC (MS Access): bug fixed when binding long data.
27 December 2000 Version 2.3.8 of SQLAPI++ library released.
New features:
SQLServer: BIT datatype support added. SQLServer: bug (assertion) fixed when working with DECIMAL or NUMERIC fields in debug version.
8 December 2000 Version 2.3.7 of SQLAPI++ library released.
New features:
29 November 2000 Version 2.3.6 of SQLAPI++ library released.
New features:
Informix: error "String data right truncation" when binding string parameters is fixed.
19 November 2000 Version 2.3.5 of SQLAPI++ library released.
New features:
12 November 2000 Version 2.3.4 of SQLAPI++ library released.
New features:
5 November 2000 Version 2.3.3 of SQLAPI++ library released.
New features:
29 October 2000 Version 2.3.2 of SQLAPI++ library released.
New features:
SQLBase: Support for Cursor-context preservation. See: SACommand::setOption SAString &SAConnection::Option(const SAString&) is replaced by SAConnection::setOption SAString &SACommand::Option(const SAString&) is replaced by SACommand::setOption
19 October 2000 Version 2.3.1 of SQLAPI++ library released.
New features:
InterBase: Support for SQL Dialect 2 and 3 added. SQL Dialect is now customizable. See: SACommand::setOption InterBase: Bug fixed when reading DECIMAL and NUMERIC fields from database
15 October 2000 Version 2.2.1 of SQLAPI++ library released.
New features:
6 October 2000 Version 2.1.1 of SQLAPI++ library released.
New features:
26 September 2000 Version 2.0.1 of SQLAPI++ library released.
New features:
Linux version released. 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. Oracle OCI7: multi-threaded support added. Documentation is improved. A great number of examples added. Supports Oracle, SQLServer, Sybase, DB2, Informix, InterBase, SQLBase and ODBC.
5 September 2000 Version 1.6.1 of SQLAPI++ library released.
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. Error when compiling with Borland compilers using data alignment other than 8 bytes fixed. Supports Oracle, SQLServer, Sybase, DB2, Informix, InterBase, SQLBase and ODBC.
25 August 2000 Version 1.5.1 of SQLAPI++ library released.
New features:
Sybase 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. 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) Microsoft VC++ 5.0 backward compatible. 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. Error when linking with Borland compilers fixed Supports Oracle, SQLServer, Sybase, DB2, Informix, InterBase, SQLBase and ODBC.
31 July 2000 Version 1.4.1 of SQLAPI++ library released.
New features:
Informix support Documentation improved Supports Oracle, SQLServer, Sybase, DB2, Informix, InterBase, SQLBase and ODBC.
20 July 2000 Version 1.3.1 of SQLAPI++ library released.
New features:
DB2 support BFILE support in Oracle OCI8 Bug in Oracle when binding BLobs fixed Bug in SQLServer when reading timestamp fields fixed Bug in SQLServer when binding TEXT fields Supports Oracle, SQLServer, DB2, InterBase, SQLBase and ODBC.
Version 1.2.1 of SQLAPI++ library released. New features:
Bug in ODBC implementation when fetching character data (in some cases data can be truncated) fixed Possibility of getting error offset (SAExecption::ErrPos) Autocommit management (SAConnection::AutoCommit and SAConnection::setAutoCommit) Documentation improved Supports Oracle, SQLServer, InterBase, SQLBase and ODBC.
10 July 2000 Version 1.1.1 of SQLAPI++ library released.
New features:
Support for managing transaction isolation levels added Transaction policy on SQLServer changed. Now all commands from one connection are in the same transaction Reported bugs fixed Documentation improved Supports Oracle, SQLServer, InterBase, SQLBase and ODBC.
19 June 2000 Version 1.0.1 of SQLAPI++ library released. Supports Oracle, SQLServer, InterBase, SQLBase and ODBC.