Nanodbc Versions Save

A small C++ wrapper for the native C ODBC API | Requires C++14 since v2.12

v2.14.0

2 years ago

Latest documentation at https://nanodbc.io

New Features

  • Added Add find_procedures and find_procedure_columns to catalog class #249
  • Added support for binding std::string_view in statement class #283

Changes

  • Changed return type of result_impl::column_size from int to long for consistency #261
  • Renamed VERSION file to VERSION.txt #275

Bug Fixes

  • Fixed SQL statements in example/usage.cpp #253
  • Fixed result_impl::column_datatype_name sizing for Unicode characters #263
  • Fixed memory leak of ensure_pdata #269
  • Fixed retrieval of SQL data type DATETIMEOFFSET #219
  • Fixed compilation on MacOS using Homebrew's vanilla GCC (for Conan build) #279

Testing

  • Add GitHub Actions with linters #273

Acknowledgements

Thank you to everyone who contributed to this release by committing changes and submitting pull requests:

Amy Troschinetz, Bernardo Sulzbach, Denis Glazachev, detule, Ezequiel Ruiz, Joe Siltberg, Mateusz Loskot, Michael Kaes, Sewon Park

Thank you to everyone who also opened issues on GitHub.

v2.13.0

3 years ago

Latest documentation at https://nanodbc.io

New Features

  • Added support for optional binding to allow out-of-order retrieval of unbound columns with SQLGetData #236
  • Added catalog::find_table_privileges method #204
  • Added connection::allocate method to manage ODBC handles handles #147
  • Added connection::get_info method which gets string information from a connection #215
  • Added NANODBC_DEPRECATED macro #279
  • Added nanodbc::list_drivers free function #192
  • Added nanodbc::list_datasources free function #237
  • Added result::column_datatype_name method #237
  • Added result::column_decimal_digits method #202
  • Added result::has_affected_rows method #185
  • Added statement::describe_parameters method as alternative to SQLDescribeParam #225
  • Added build flag NANODBC_DISABLE_ASYNC which disables async features #142
  • Added CMake package configuration #245
  • Added column validating function to the result_impl class #206
  • Added handling of SQL_SS_UDT data as binary #148
  • Added input iterator for result class #155
  • Added public macro NANODBC_THROW_NO_SOURCE_LOCATION #184
  • Added string converter functions for more efficient processing #151
  • Added support for SQL_WLONGVARCHAR data type #211
  • Added support for SQL_SS_XML data type #238
  • Added support for std::vector of strings input #214
  • Added support for time column type #183
  • Added support for binding of binary data #219
  • Added support to get binary data as array of bytes #130
  • Added two catalog operations: list_catalogs and list_schemas #193
  • Added very minimal support for SQL Server-specific time datatypes #228
  • Allowed binding values of all intrinsic integral types #232

Changes

  • Changed COLUMN_SIZE for bytea to now equal SQL_NO_TOTAL(-4) by default #251
  • Disabled declaration of async methods if NANODBC_DISABLE_ASYNC is defined #197
  • Fixed, improved and cleaned up the family of bind functions
  • Made NANODBC_TEXT macro public #151
  • Refactored CMake options to default value OFF #260
  • Removed unused output connection string from SQLDriverConnect call #188
  • Renamed nanodbc::string_type to nanodbc::string #269
  • Renamed src directory to nanodbc #256
  • Replaced custom NANODBC_STATIC option with CMake native BUILD_SHARED_LIBS #250
  • Report SQL_HANDLE_DBC error if statement::open fails to allocate handle #178
  • Started enforcing project-wide consistent code style using clang-format #203

Bug Fixes

  • Added DB-specific tests for result::affected_rows #154
  • Fixed statement_impl::async* members which were left uninitialized if not built-in #187
  • Fixed binding of SQL_DECIMAL and SQL_NUMERIC type as character data #238
  • Fixed compilation using Xcode 11 #224
  • Fixed copying of buffer to output string for SQL_C_BINARY #129
  • Fixed correct buffer size passed to SQLGetData #150
  • Fixed incorrect size passed to SQLBindParameter while inserting batch of strings #116
  • Fixed integer conversions #176
  • Fixed issue withSAP/Sybase ASE ODBC driver not setting sqlsize to 0 when retrieving varchar columns #275
  • Fixed overflowing transaction counter #144
  • Fixed retrieving long strings from MySQL #212
  • Fixed some issues with the async support, plus add async prepare and next #170
  • Fixed to use correct wide-char count when copying from SQLGetData buffer #182
  • Handled SQLGetData return value of SQL_NO_TOTAL #161
  • Put the string lengths in their proper place #165
  • Resolved narrowing from wchar_t to char warning in VS 2017 updates #199
  • Resolved unexpected bind() with nulls set to nullptr behavior #140
  • Updated to catch up with breaking change in SQLite ODBC 0.9996 #165

Testing

  • Added integer_boundary test case for SQLite #174
  • Added AppVeyor build targeting SQL Server 2016 #194
  • Added CI job to lint and build docs #152
  • Added CI job to run clang-format 5.0 to check for code formatting errors #153
  • Added CI jobs to run static code analysis #270
  • Added MinGW build job to AppVeyor #196
  • Added SQL Server test for the Invalid Descriptor Index issue #227
  • Added SQL Server test inserting large blob using direct INSERT #186
  • Added test for std::vector<bool> workaround #267
  • Added test for integer to string conversion (SQLite only) #190
  • Added test insert and select from/into nanodbc::time (SQLite) #195
  • Added tests for PostgreSQL time/timestamp with/without time zone #229
  • Added Vertica to Travis CI #199
  • Refactored test fixture and split into common utilities base and test case base #225
  • Updated Catch to 2.4.2 #201

Acknowledgements

Denis Glazachev, Jim Hester, Billy O'Neal, Kun Ren, whizmo, Amy Troschinetz, Christopher Blaesius, detule, Diego Sogari, Jon Valvatne, Mateusz Loskot, Michael C. Grant, H1X4Dev, Rafee Memon, Sauron, Seth Shelnutt, ThermoX360, detule