Version: 1.2-3 (2008-01-24, released) * Plug a memory leak in inRODBCClose (closing a connection), reported by Stephan Henne. * Use translateChar() on character data sent in. Version: 1.2-2 (2007-10-19, released) * Clarify licensing as under either GPL-2 or GPL-3, add licence comments to source files. * Typo in setSqlTypeInfo(). * Use gsub() rather than chartr() in odbcConnectAcces() etc, because of a report that chartr() was not working correctly on Chinese file names. * Added odbcConnect{Access,Excel}2007() for use with Office 2007 formats and drivers. Version: 1.2-1 (2007-06-03, released) * Use (const char *) for compatibility with pre-2.6.0. * Add comments about MySQL's broken Connector/ODBC beta. Version: 1.2-0 (2007-04-24, released) * Move to ODBC3 function calls throughout. * Internally, keep an ODBC environment open throughout the session rather than use one for every channel. * sqlwrite can use SQLBulkOperations where supported for forward-only cursors. (So far we have only found support in the MyODBC 3.51 and later drivers. Also, this does not appear to work correctly for column types that need conversion in the DBMS.) * odbcDriverConnect has new arguments to set the values of 'rows_at_time' and 'bulk_add' for the connection. 'rows_at_time' now defaults to 1000. * odbcDriverConnect has new argument 'DBMSencoding' to allow re-encoding of character data to be passed to and from a DBMS running with a charset different from that of the locale under which R is running. Version: 1.1-9 (2007-04-02, released) * odbcConnectExcel has a 'readOnly' option (default TRUE, as before). * There is more support for Excel spreadsheets, including 'tables' as marked ranges as well as worksheets, and more compatibility for writing to spreadsheets (in so far as this is allowed by the ODBC driver). See ?odbcConnectExcel. * odbcDriverConnect has new arguments 'colQuote' and 'tabQuote' to control the quoting of column and table names (respectively) in SQL queries. ANSI SQL92 mandates quoting by ", but this is not universally accepted (e.g. by MySQL) and RODBC used not to quote. Now it attempts to quote suitably, but setting colQuote=NULL reverts to the earlier (non-quoting) behaviour. * odbcDriverConnect tries to figure out a default value for 'case' from the DBMS name reported by the driver. * sqlSave(fast = FALSE) and sqlUpdate(fast = FALSE) now escape embedded single quotes in character strings via doubling, which should work on systems with ANSI SQL92 compliance. The quoting rules for fields is now read from the driver (as e.g. Excel quotes datetime fields by ## not ''). * getSqlTypeInfo now has values for the Excel driver. * Fixed typo in the default setting of options("dec"), which meant it was set to '.' in all locales, and gave a spurious warning in R >= 2.5.0. Version: 1.1-8 (2007-01-02, released) * make use of symbol registration for .Call entry points. * add odbcEndTran() function for use when odbcSetAutoCommit() has been used to disable auto-commit. * add odbcDataSources() function to list User and System DSNs. * sqlUpdate(fast=FALSE) now quotes date and time columns as some drivers appear to need it. * sqlwrite{fast=FALSE, append=TRUE) works better with out-of-order columns on some drivers. Version: 1.1-7 (2006-05-24, released) * configure.ac: make use of odbc_config if --with-odbc-manager=odbc. * sqlSave: change wording of one error message (Matthew Dowle, 2006-04-11). * sqlFetch can now fetch up to 1024 rows at a time, which can be substantially faster when using a remote server. (Based on code suggested by Nick Gorman to Matthew Dowle.) * setSqlTypeInfo: corrected typo. Version: 1.1-6 (2006-04-04, released) * Use SQL[U]LEN to agree with ODBC 64-bit headers. * Add config.h.in to show if the above are defined, and also SIZEOF_LONG for unixODBC headers. * Add more info on sqlite3 in README and tests.R. (I failed to make sqlite 2.8.17 work on a 64-bit platform, and also failed to save to other types such as 'date' and 'text'.) * Add info on 64-bit builds (especially Debian) in README. Version: 1.1-5 (2006-01-10, released) * Added a cast in RODBC.c to counteract a warning Dirk Eddelbuettel got (and I do not on either Linux or Windows). * Autoconf 2.59 goes into undocumented back-compatibility mode with a one-argument AC_INIT, so use full form (with version no). * odbcSetAutocommit was not exported. * sqlSave: if 'verbose' and 'safer' write out verbose message before error message. Version: 1.1-4 (2005-08-04, released) * Add configure arguments and look at env vars - see README * Use collapse="\n" for possible multiple error messages. * Add odbcSetAutocommit() contributed by Yasser El-Zein. * Attempts to open and close more than 100 channels in a session might have segfaulted. * sqlSave(test) was documented with the wrong default. Version: 1.1-3 (2005-02-05, released) * Improve error messages for possible translation. * Fix typo in regexp in mangleColNames. * Add tests for native PostgreSQL on Windows. * Workaround problem with MyODBC 3.15-10 driver that needs SQL_DRIVER_NOPROMPT when the window handle is null. Version: 1.1-2 (2004-10-24, released) * Operating on a closed channel might crash in RODBCcheckchannel. * Report that DBase driver description in odbcConnectDbase was wrong. * Add settings for SQLite. Version: 1.1-1 (2004-09-14, released) * Select the decimal point from Sys.localeconv. * Add an external reference and finalizer so open channels get closed at the end of the session or when there is no R object referring to them. * There is no longer a restriction to 16 channels. Version: 1.1-0 (2004-09-06, test version) * Add NAMESPACE. * odbcConnect{Access,Dbase,Excel} allow a missing file name (and will bring up a dialog box to search for it). * odbcGetInfo returns more information in a 8-element character vector (based on an idea of Matthew Dowle). * The C code calls SQLExecuteDirect rather than SQLExecute and does not call SQLCloseCursor, based on a problem report from Matthew Dowle using MS SQLServer. Repeated calls to sqlGetResults now work. * New function sqlFetchMore. * Table names in Access with embedded spaces are mapped to the [name space] form which Access requires. * Table creation no longer removes _ from column names. * New functions get/setSqlTypeInfo and the typeInfo argument to sqlSave allow users to specify the mapping from R types to DBMS datatypes. sqlSave also allows the specification of DBMS datatypes by column. * It is now possible to write more than 255 chars to a field with sqlSave and sqlUpdate. * Dates and timestamps are now read as 'Date' and 'POSIXct' columns by sqlGetResults (unless as.is = TRUE for the column). Version: 1.0-4 (2003-07-19, released) * RODBC.c: iodbc was not recognizing the SQLTCHAR cast * odbcClose.Rd, odbcConnect.Rd: tidy up Version: 1.0-3 (2003-05-25, released) * RODBC.c: remove unneeded SQLCHAR cast Version: 1.0-2 (2003-05-13, released) * Add inst/ directory and install README. * Allow reading of character fields up to 64K bytes (limited as the driver may report silly sizes). * Note that convenience wrappers for Excel etc need English-language drivers to be installed. Version: 1.0-1 (2003-01-20, released) * If a character field is truncated when reading from a database, an R warning is given. * There was no protection against writing more than 255 chars in a character vector in sqlSave/sqlUpdate(fast=TRUE). Now the first 255 characters are written and a warning given. Version: 0.99-9 (2003-01-17, test version) * Testing with PostgreSQL revealed that - attempting to create a table with a primary key resulted in memory corruption inside the unixODBC PostgreSQL driver and - the special columns in PostgreSQL are pseudo-columns, so ML's stategy in sqlUpdate is doomed. * Added 'addPK' argument to sqlSave(), defaulting to FALSE, to circumvent the above. (The latest psqlodbc client behaves.) * Changed strategy in sqlUpdate(). Allow 'index' argument, and otherwise look first for a primary key in the data frame, then special columns, then "rownames". * Changed all C-level tests to allow for SQL_SUCCESS_WITH_INFO as the return value is driver-dependent and psqlodbc was returning SQL_SUCCESS_WITH_INFO from SQLExecute. Version: 0.99-8 (2003-01-15, test version) * Result sets with no rows are now reported as 0-row data frames and not regarded as an error (return value -1). * More consistent usage of errors, with new error code -2 indicating no data (that is no result from the query, not just no rows available). For example, failure to create a table in sqlSave() is now a fatal error. * On Windows, convenience functions odbcConnectAccess(), odbcConnectDbase() and odbcConnectExcel() based on suggestion of Fan, . * A 'channel' object contains a randomly generated ID, so even if a channel has been closed and the slot reused, the original R object will be declared invalid. * options("dec") is only set when RODBC is loaded if it is not already set. * New function odbcCloseAll(). * Improved documentation. New README, move ML's to README.orig. Version: 0.99-6 (2003-01-12, test version) * Migration to use .Call where appropriate. * 'channel' is now a classed object, with a print method and all relevant information is recorded as attributes of the object, and new function odbcReConnect() allows reconnection to a saved 'channel' object. * New function odbcDriverConnect() provides an alternative interface via ODBC driver connection strings. Under the Windows GUI this allows interactive completion of connection strings via standard ODBC dialog boxes. * Names of tables are no longer deparsed, so normal R semantics apply and they should be quoted. * odbcNumRows now returns the number of rows, not a list. * odbcCaseFlag now returns character in all cases. * New argument 'believeNRows' to accommodate ORACLE (and also sqlTypeInfo() calls on MySQL). * The limit on the number of channels was off by one. * sqlSave() and sqlFetch() now default to rownames = TRUE, that is to include rownames in the table, and to use column 'rownames' for the rownames if it exists. It is possible to retrieve columns other than the first as rownames, as documented (but not working). * New 'safer' option to sqlSave(), which defaults to TRUE. * When sqlSave() creates a table and includes rownames, the rownames are created as a primary key (where supported). * sqlUpdate() has a new 'tablename' argument and many internal changes (e.g. implementing case changes): it is now operational. * sqlSave(fast=TRUE) and sqlUpdate() can now create database NULLs even on MS Access, and character strings with value "NA" are no longer automatically regarded as missing. sqlUpdate() now has a fast=FALSE method, and for both the fast methods avoid converting numeric and integer columns to character. * odbcFetchRow() has been removed. * sqlCopy() is now implemented. * odbcFetchRows() now returns a list, and sqlFetchRows() only returns a data frame, this being the most efficient storage. SQL double, real, integer and smallint columns are transferred directly to R numeric and integer columns (rather than being converted to character and back again). * Function sqlDrop(), sqlColumns() and sqlPrimaryKeys() were not respecting case-changing (although case-altering DBMSs usually coped). * Various memory leaks have been plugged. * Improved documentation. Version: 0.9-1 (release candidate 2, released to CRAN 2002-10-30) * Improved documentation Version: 0.9-0 (release candidate 1) * New maintainer. * Bring up to date for R 1.6.0. * Several functions were not testing the case-switched version of the table name: now integrated into new function odbcTableExists. * New function odbcGetInfo. * New function sqlTypeInfo. * sqlFetch now does work with Excel spreadsheets. Version: 0.8-3 * Minor changes to make documentation and examples R CMD check compliant