分享

SQLAPI

 322yangxinxing 2012-02-09
Home How To Online Documentation Support Download Order
 

 


Benefits
Examples
History
SQLAPI++ References
 

Quick download:

SQLAPI++ Windows

SQLAPI++ Linux

SQLAPI++ Mac OS X

SQLAPI++ FreeBSD

SQLAPI++ Solaris x86

SQLAPI++ Solaris SPARC







SQLAPI++ Library

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

Server Win32 Linux/Unix
Oracle Database Server Supported (OCI) Supported (OCI)
Microsoft SQL Server Supported (DB-Library, OLE DB) FreeTDS ODBC driver should be used
Sybase Supported (Open Client, ASE & ASA) Supported (Open Client, ASE & ASA)
DB2 Supported (DB2 CLI) Supported (DB2 CLI)
Informix Supported (Informix CLI) Supported (Informix CLI)
InterBase/Firebird Supported Supported
Centura (formerly Gupta) SQLBase Supported (CAPI) Supported (CAPI)
MySQL Supported (MySQL C API)  Supported (MySQL C API)
PostgreSQL Supported (libpq) Supported (libpq)
ODBC Supported Supported (iODBC, see www.)
SQLite
Supported
Supported

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

  • Microsoft Visual C++
  • Borland C++ Builder
  • GNU project C and C++ compiler

Why use SQLAPI++?

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

Examples

Steps

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

Advanced Examples

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

History

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

See Full History...


Last modified: 4 November 2011
webmaster@

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多