SQLite ODBC Driver ------------------ Wed May 26 2010 version 0.86 released * update to SQLite 3.6.23.1 * fixes in handling SQL_TIMESTAMP data regarding fractional part * fixes in SQLForeignKeys() and SQLGetTypeInfo() as suggested by Farid Zidan * SQLGetData() now returns real length instead of SQL_NO_TOTAL when the buffer was too small * added sqlite3_mod_extfunc.dll from www.sqlite.org/contrib * fixed UTF8/UNICODE en/decoding of character range 0x80..0xff * fixed SQLSetConnectAttr(..SQL_AUTOCOMMIT..) handling as suggested by Simon Schubert Tue Jan 12 2010 version 0.85 released * update to SQLite 3.6.22 * added JournalMode DSN option * again fixes in SQLPrimaryKeys() * allow zero length parameter in SQLSetConnectAttr(..SQL_AUTO_COMMIT..) Wed Dec 02 2009 version 0.84 released * update to SQLite 3.6.20 * SQLStatistics() now reports INTEGER PRIMARY KEY as first index * SQL_ATTR_MAX_ROWS for SQLite3 driver * fixed memory leaks in SQLPrimaryKeys() * try to detect last argument of SQLSetStmtOption() needed for newer unixODBC versions Tue May 26 2009 version 0.83 released * update to SQLite 3.6.14.2 * fixed UNICODE string length issues in SQLGetInfoW() et.al. Mon May 11 2009 version 0.82 released * update to SQLite 3.6.14 * in driver connect dialog, disable DSN input field when driver name property is set on begin of dialog * initial Win64 NSIS installer of SQLite3 driver * Win64 version of SQLite3 driver can now be made with MingW-64 cross compiler * eliminated warnings for Win64 build Tue Apr 14 2009 version 0.81 released * update to SQLite 3.6.13 * use sqlite3_table_column_metadata() when available to optimize out "PRAGMA table_info()" * configure now prefers the amalgamation SQLite3 source if it finds sqlite3.c/sqlite3.h using the --with-sqlite3 switch * various hacks to make MS Excel/Query happy * various fixes and enhancements in impexp.c * keep sqlite3_stmt pointers as long as possible between SQLPrepare() and SQLExecute() in order to minimize SQLite API calls * provide current date when retrieving TIME rows as TIMESTAMP * now use amalgamation source sqlite3.c when building SQLite3 drivers * partial implementation of SQLSetPos(), fixes in length handling for deferred parameters, and row-wise parameter array binding to make Database Template Library (DTL) happy * 64 Bit fixes for getrowdata() thanks Nikolas Taylor for fix Tue Jan 27 2009 version 0.80 released * update to SQLite 3.6.10 * Tru64 and HP/UX 64 bit fixes and build notes in README thanks to Nikola Radovanovic * length/indicator fixes for parameter arrays * getrowdata fixes for length/indicator and truncation * added Win32 build option to use sqlite*.dll instead of static linking * initial Win64 support, thanks Nikolas Taylor for help * fixed x86_64 problems in SQLite2 driver * provide ODBC2/ODBC3 column names for metadata w.r.t. SQL_HENV * provide proper SQL_DESC_LENGTH for SQL_BIT * fixes in SQLBindCol regarding SQL_BIND_BY_COLUMN * made SQL_DESC_OCTET_LENGTH/SQL_DESC_TYPE_NAME more consistent w.r.t. wide-char types * fix in iODBC include path in configure.in, thanks Ingo Bormuth for patch * again fixes in SQLGetData for SQL_NO_DATA paths Mon Sep 29 2008 version 0.79 released * update to SQLite 3.6.3 * fixes in SQLGetData for zero-length SQL_C_CHAR and SQL_C_BINARY * fixed off-by-one counting problem for SQL_ATTR_ROW_NUMBER and SQL_ROW_NUMBER, thanks Christian Mueller for initial fix Sun Aug 24 2008 version 0.78 released * update to SQLite 3.6.1 * relaxed fixupsql() parsing to be able to support "CREATE TRIGGER ..." SQL statements in SQLPrepare() et.al. * added XML output format to impexp.c * provide SQLAllocHandle/SQLFreeHandle for iODBC, too, thanks Nick Davis for patch * double free fix in SQLPrimaryKeys(), thanks Ingo Bormuth for reporting * increased some PRECISION fields in SQLGetTypeInfo() * fix in SQLSetConnect(Attr|Option)(..SQL_AUTOCOMMIT..) when a transaction is in progress and autocommit is turned on again, thanks Sam Kanai for reporting Sun Jan 06 2008 version 0.77 released * update to SQLite 3.5.4 * fixed length/offset issues in SQLGetData() when reading data in multiple chunks, thanks Sam Kanai for reporting * fix in parameter binding regarding SQL_C_WCHAR/SQL_NTS buffers, thanks Sam Kanai for reporting * fix regarding SQL_RESET_PARAMS and unbound parameter semantic, thanks Sam Kanai for reporting and providing initial fix * fixes in Win32 rundll32 install/uninstall handlers * more 64bit fixes * fixed wrong typeinfo for time/timestamp * now use sqlite3_bind_*() functions for SQLite3 driver's parameter passing Thu Oct 11 2007 version 0.76 released * update to SQLite 3.5.1 * partly reverted SQLPrimaryKeys() change from version 0.73: report primary keys from PRAGMA table_info or if none found fall back to "*autoindex*" PKs from PRAGMA index_list * minor tweaks in Makefile.in regarding libtool mode parameter and SQLite3 install targets * added handling for SQL_DESC_SCHEMA_NAME in SQLColAttribute() * added handling for SQL_ATTR_CURSOR_SENSITIVITY in SQLSetStmtAttr() * improved SQLTables()/SQLColumns() regarding pattern search * use *printf(3) format %Q instead of '%q' in SQLite 3 driver * if available use newer SQLite3 APIs (sqlite3_prepare_v2() etc) Sat Aug 04 2007 version 0.75 released * update to SQLite 3.4.1 * hack for MS Access' wrong usage of SQLStatistics (reserved error -7748) * minor code cleanup * fixed bug in SQLite2 driver SQLColumns() * reworked start transaction logic w.r.t. meta data functions like SQLTables() * added some additional logic to SQLCancel() and SQLite busy handlers Mon Apr 02 2007 version 0.74 released * SQLColAttribute(s)(): provide proper info for SQL_DESC_NULLABLE/SQL_COLUMN_NULLABLE * SQLPrimaryKeys(): report only real primary keys * fixed SQL_COLUMN_PRECISION/SQL_DESC_PRECISION for integer/double/date/time/timestamp columns * SQLStatistics(): report INTEGER PRIMARY KEY column as index when no other indices available * fixed SQL_COLUMN_TYPE_NAME/SQL_DESC_TYPE_NAME return, should be "VARCHAR" instead of "VARCHAR(100)" * fixed wrong pointer increments for DSN parsing on Win32 * minor fixes in blobtoxy extension module Sun Feb 18 2007 version 0.73 released * update to SQLite 3.3.13 * SQLGetInfo(SQL_OWNER_TERM) now is empty string * fixed bug in Win32 version concerning SQLDriverConnect() * added -L/-l/-I/-i switches to sqlite+tcc.c Sat Feb 10 2007 version 0.72 released * update to SQLite 3.3.12 * added case for SQL_DESC_NUM_PREC_RADIX in SQLColAttribute[s] * Win32 MinGW build: turn on SQLITE_SOUNDEX * UN*X: try libodbcinst.so.1/libiodbcinst.so.2 before libodbcinst.so/libiodbcinst.so for SQLGetPrivateProfileString(), the latter are normally only in development packages * unquote table names for SQLForeignKeys() and pragma foreign_key_list() * added Win32 build of experimental sqlite+tcc module * fixes/additions in configure.in/Makefile.in * minor changes regarding WITHOUT_DRIVERMGR compile-time switch * added new compile-time switches WITHOUT_INSTALLER and WITHOUT_SHELL for Win32 * added blobtoxy and impexp loadable modules, Win32 names are sqlite3_mod_blobtoxy.dll and sqlite3_mod_impexp.dll * added DSN option LoadExt for specification of loadable extensions as comma separated list of pathnames * added Win32 build of FTS1/FTS2 to DLLs sqlite3_mod_fts1.dll and sqlite3_mod_fts2.dll Thu Jan 11 2007 version 0.71 released * update to SQLite 3.3.10 * MingW Win32 build: added shell function in order to run driver DLL as SQLite shell from rundll32 * WIN32 thread safety as suggested by Dmitriy Ivanov: serialize most SQL*() APIs using critical section on ENV struct * implemented SQLGetDiagField(W)(), initial code kindly donated by Arnold Schulz * more tweaks regarding Win32 code page vs. UTF-8 * added patches from Debian 0.70 testing * on Win32 don't assume that database, DSN, and driver names are UTF-8 encoded in SQLite3 driver * fixes in corner cases of SQL query substitution with 0 parameters and SQL patterns (%) * added "ShortNames" DSN option in SQLite 3 driver * allow naming a column (no pattern) in SQLColumns() * UN*X standard behaviour now is not to build drivers with wide char interfaces, this must be turned on explicitely by specifying "--enable-winterface" at configure time * now provide SQL*W functions in Win32 SQLite3 driver, quick and dirty ported from sqliteodbc.c, not optimized for SQLite 3.x wide char APIs Sun Aug 20 2006 version 0.70 released * update to SQLite 3.3.7 * fix for SQLBindCol(,,NULL,,) which must unbind column * added missing SQL_CATALOG_NAME/SQL_COLLATION_SEQ in SQLGetInfo() * added SQLiteODBCInstaller for Win32 as contributed by Gunter Hinrichsen * added install/uninstall functions in Win32 versions in order to allow driver install/remove by rundll32 Sun Jul 23 2006 version 0.69 released * added "NoCreat" DSN option in SQLite3 driver to prevent from implicit creation of empty database files * fixed severe bug in conditional compile for (un)defined HAVE_SQLITE3COLUMNTABLENAME, thanks Tim Tassonis for reporting * detect and handle SQLITE_SCHEMA errors from sqlite3_prepare() Fri Jul 07 2006 version 0.68 released * update to SQLite 3.3.6, 2.8.17 * increased default lock timeout to 100000 milliseconds * use sqlite3_column_table_name when available * improved type mapping/type detect for SQLite3 driver, thanks Rainer Keuchel for ideas/initial coding * fixed buggy memcpy() in getrowdata(), thanks Rainer Keuchel * tweaks in SQLTables() * improved .spec file w.r.t. standard RPM/configure places, * UN*X version: try to use dlopen() for SQLGetPrivateProfileString() in order to become agnostic of unixODBC vs iODBC * fixes in SQLite3 driver regarding percent substitution for queries with no parameters (eg strftime SQL function) * fixes w.r.t. SQL_C_DEFAULT type mapping * fixes in SQLParamData()/SQLPutData() again * minor changes in Win32 dialog handling Mon Apr 03 2006 version 0.67 released * reworked blob handling in SQLite 2+3 drivers, thanks Altan Özgür for testing * added NSIS installer script * Win32 version can now be made with MingW cross compiler * eliminated some more warnings in Win32 DSN config * improved SQLite 3 tracing for DSN option "tracefile" * added shell scripts drvdsninst.sh/drvdsnuninst.sh and Makefile targets drvinst/drvuninst * added configure option --enable/disable-winterface to turn on (= enable, default) or off (= disable) SQLite 2.x SQLITE_UTF8 mapping to SQL*W() functions * fixes in accordance with MSDN KB#294169 Unicode length arguments mainly in SQLColAttribute[s]*W() Sat Feb 25 2006 version 0.66 released * update to SQLite 3.3.4 * added DSN option "LongNames" to switch behaviour regarding column name truncation * eliminated warnings when compiled with GCC 4.x * added handling for Unicode 2 word sequences * added alpha SQL_BINARY support for SQLite 3 driver * fixes regarding SQLParamData/SQLPutData for data-at-execution parameters * GCC 4 related fixes regarding signedness warnings * added mkopc3.c utility to create opcode.[ch] files for newer SQLite 3 (> 3.0.8) sources * added SQL_BIT data type handling * added SQL_BIGINT data type handling for SQLite 3 * fixes in fixupsql() * some defines to deal with newer ODBC headers * fixes w.r.t. va_list handling for sqlite_exec_vprintf, sqlite_vmprintf etc. * update to SQLite 2.8.16 * fixes w.r.t. blob handling in SQLite2 driver * added DSN option "NoTXN" to disable BEGIN/COMMIT/ROLLBACK * added SQL_ATTR_NOSCAN handling * added DSN option for PRAGMA synchronous (SQLite3 only) * minor fixes concerning return code of SQLFetch() and friends w.r.t. non-SELECT statements * added SQL_DESC_COUNT handling as requested by Vadim Zeitlin * added OS/2 port in SQLite2 driver contributed by Lorne Sunley * handle MEMO like TEXT in columns * use BEGIN EXCLUSIVE transaction when SQLite >= 3.0.8 * fixed memory leak in vm_step/s3stmt_step Thu Oct 07 2004 version 0.65 released * first (alpha) version of SQLite3 driver for Win32 * fixes in Win32 resources * minor tweaks in SQLGetInfo() * fixes in length return of SQLGetInfoW() concerning UNICODE data * fixed errors in orientation/offset handling of SQLExtendedFetch/ SQLFetchScroll, thanks Lucky Prianata for testing * added handling of SQL_ATTR_ROW_BIND_OFFSET_PTR for statements * added handling of SQL_ATTR_RETRIEVE_DATA for statements (seems to be needed by ADO) Sun Sep 05 2004 version 0.64 released * added row-wise binding for rowsets * fixed off-by-one error for SQL_FETCH_PRIOR * another bug fix in fixupsql() concerning quotes thanks to Justin Foutts * always fallback to _ROWID_ in SQLSpecialColumns(SQL_BEST_ROWID) even for tables w/o index * update to SQLite 2.8.15 * fixes concerning SQL_COLUMN_LABEL in SQLColumnAttribute(s) Thu Jul 08 2004 version 0.63 released * added tracefile DSN option using sqlite_trace() if available * in drvprepare() make SQL check with all parameters set to NULL * only use *step() for select statements w/o parameters (makes option usable on OpenOffice.org on Linux) * added pre-alpha version for SQLite 3.x * added limited support for paramsets/rowset for OTLv4 * added limited support for named parameters (Oracle-style) * fixed problem in SQLBindParameter argument checking * when using gcc do printf-style format checks on setstat/setstatd * added SQLite functions current_(date|time|datetime)_(local|utc) * include SQLite error codes or -1 in native error field in SQLError() and SQLGetDiagRec() * bug fixes in SQLNativeSql() concerning buffer/length semantics, thanks to N Rajesh * corrected problems in fixupdyncols (select on views) and UN*X version of drvdriverconnect * added SQLite functions hextobin/bintohex when sqlite_(encode|decode)_binary API available * introduced blob handling when sqlite_(encode|decode)_binary available (SQLite 2.8.14 made these APIs public) * update to SQLite 2.8.14 * made SQL_COLUMN_LABEL different from SQL_COLUMN_NAME * fix in configure.in concerning SQLITE_INC/LIBDIR macros, thanks to Stefan Radman Sat May 01 2004 version 0.62 released * don't implement some APIs for unixODBC unicode driver version * fixed unicode length semantics in SQLGetInfoW() et.al. * when SQLITE_UTF8 make SQLDriverConnectW() on UN*X, too * added missing SQL_DESC_TYPE_NAME case in SQLColAttribute(), patch provided by Chris Waters Sat Apr 24 2004 version 0.61 released * fixed getrowdata() to support SQLGetData() with NULL ptr and SQLFetch() to retrieve proper data length, thanks to Joel Reed * fall back to integer primary key columns in SQLPrimaryKeys() and SQLStatistics() when no indices on table found * improved auto increment detection Thu Apr 08 2004 version 0.60 released * improved RPM .spec file * added heuristic to detect auto increment columns (not a 100% solution yet) for better OpenOffice.org support, thanks to Yves Chaufour for OOo testing * added property list function for unixODBC setup dialog * another SQLFreeStmt(...SQL_CLOSE) fix to make OOo work * added implemetation of SQLForeignKeys() * removed worker thread support, use sqlite_compile(), sqlite_step(), sqlite_finalize() instead, DSN option to use that feature is "StepAPI" * minimum required SQLite version is now 2.8.0 Sun Mar 21 2004 version 0.56 released * update to SQLite 2.8.13 * fixes in UTF to unicode conversion * fixes in handling of length indicator in SQLBindParameter() * added SQL_{COLUMN,DESC}_{PRECISION,SCALE} to SQLColAttribute() * some unixODBC tweaks related to SQLError()/SQLGetDiagRec() * corrections in SQLError()/SQLGetDiagRec() handling, * fixed bugs in SQLColAttribute() which crashed OpenOffice.org * added SQL_FETCH_RELATIVE support as requested by Jorge Mason * fix in SQLFreeStmt(...SQL_CLOSE): don't unbind bound columns thanks to Martin Saturka Sat Jan 25 2004 version 0.55 released * update to SQLite 2.8.11 * fixes in error messages * fixed SQL_IDENTIFIER_QUOTE_CHAR to be double-quote, thanks to Mourad Ben Cheikh * minor fixes in functions related to SQLColAttribute(s) * started support of bookmarks * added SQL_DYNAMIC_CURSOR_ATTRIBUTES1 in drvgetinfo(), thanks to Jeff Robbins * changed "numeric" in mapsqltype() to return SQL_DOUBLE, thanks to Cristian Guissani * added add[sys]dsn/rem[sys]dsn utility programs for Win32 as requested by Tom Shafer * fix in ParseAttributes() for proper DSN configuration * don't automatically rollback in drvexecute() * bug fix in UTF8 version for deferred bound parameters thanks to Kimmo Hamalainen Sun Jul 27 2003 version 0.54 released * update to SQLite 2.8.5 * minor fixes in SQLGetDiagRec() * when ODBC V3 turned on report proper error codes (eg HY000) * added partial support of SQL_ATTR_ROW_BIND_TYPE Fri Jul 11 2003 version 0.53 released * update to SQLite 2.8.4 * added missing handling of ODBC V3 data type codes SQL_C_DATE, SQL_C_TIME, SQL_C_TIMESTAMP in some functions. Thanks to Justin at cloudmark dot com Sun Jun 15 2003 version 0.52 released * update to SQLite 2.8.3 * fixed potential crash in dbopen() thanks to Gene Shkolnik * some improvements and hacks for WIN32 ADO * for SQL type "float" report SQL_DOUBLE instead of SQL_FLOAT * WIN32: export more ODBC V2 symbols * fixes in unicode conversions in SQLGetData() and drvbindparam(). Thu May 15 2003 version 0.51 released * added support for SQLITE_UTF8 by SQL*W unicode entries, partially tested on Win32 only! * added ODBC v2/3 handling on SQLAllocHandle etc. * use localeconv() to fixup floating point formatting * eliminated unnecessary odbcver.h and ctl3d.h from *.rc and *.c files, thanks to Roberto Artigas Jr * added ODBC version 3 SQL_TYPE_* features * fixes in configure.in for Solaris, thanks to Gene Shkolnik * fixed bug in drvbindparam() thanks to Alex Clement * switched coroutine handling to use pth_uctx_*() from GNU pth package, configure option --enable-pth Sat Mar 08 2003 version 0.50 released * changed freeresult() behaviour in order to allow SQLBindCol() column bindings before prepare/execute * revision of SQLGetTypeInfo() * minor changes in SQLGetInfo() and SQLGetFunctions() Sat Feb 22 2003 version 0.49 released * update to SQLite 2.8.0 * bug fix in fixupsql() concerning quotes thanks to Alex Clement * bug fix in substparam() for SQL_NTS/SQL_NULL_DATA thanks to Alex Clement * bug fix in drvfetchscroll for wrong column counting for SQL_FETCH_ABSOLUTE, thanks to Gene Shkolnik Thu Jan 02 2003 version 0.48 released * cleanup threading * added mkopc tool for making opcodes.[ch] on Win32 Sat Sep 14 2002 version 0.47 released * fixed NULL pointer derefs in getmd() and mapsqltype() * SQLBindCol() now always binds even if no result available Sat Aug 31 2002 version 0.46 released * experimental: configuration option: use coroutine instead of thread for running select statements * SQLMoreResults() now always returns SQL_NO_DATA * use the new PRAGMA show_datatypes if available * reworked busy handling logic to use sqlite_busy_handler() * now perform sqlite_open() in single function dbopen() * changed all pthread_cond_signal() to pthread_cond_broadcast() Fri Jul 05 2002 version 0.45 released * improved timestamp scanning * return result set with _ROWID_ for SQLSpecialColumns() when no unique column in table * fixes in parameter substitution (SQLSetParam()) * fixed reading data in pieces (SQLGetData()) * added dummy implementations for SQLTablePrivileges(), SQLColumnPrivileges(), SQLProcedures(), SQLForeignKeys(), SQLProcedureColumns() * code cleanup * added support for NULL in parameters using %Q sqlite_..printf() format specifier for SQLite > 2.4.x Sun Jun 16 2002 version 0.44 released * fixed getbool() to return false on empty string * added implementation of SQLParamData(), SQLPutData() * fixed values of NON_UNIQUE field in SQLStatistics(), store empty INDEX_QUALIFIER field in SQLStatistics() * fixes in getrowdata() concerning partial retrieving of result set * when starting an asynchronous query, set number of result rows to -1 * fixes in SQLBindParameters(), for some datatypes the binding was not performed Sun Jun 09 2002 version 0.43 released * replaced all %s in PRAGMAs by '%q' to make SQLPrimaryKeys(), SQLStatistics(), SQLSpecialColumns() work on automatic indexes * added NULLABLE column to result set of SQLSpecialColumns() to support last SQLSpecialColumns() parameter properly * additions in SQLGetInfo() * added implemetation of SQL(Get|Set)ConnectAttr() * improved handling of SQLDriverConnect() for non Win32 OSes * improved handling of arguments in SQLTables() Tue Jun 04 2002 version 0.42 released * now use doxygen for docs * added ChangeLog * added BSD type license