- Added Add
find_procedures
andfind_procedure_columns
tocatalog
class#249
- Added support for binding
std::string_view
instatement
class#283
- Changed return type of
result_impl::column_size
fromint
tolong
for consistency#261
- Renamed
VERSION
file toVERSION.txt
#275
- 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
- Add GitHub Actions with linters
#273
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.
- 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 toSQLDescribeParam
#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
andlist_schemas
#193
- Added very minimal support for SQL Server-specific time datatypes
#228
- Allowed binding values of all intrinsic integral types
#232
- Changed
COLUMN_SIZE
forbytea
to now equalSQL_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
tonanodbc::string
#269
- Renamed
src
directory tonanodbc
#256
- Replaced custom
NANODBC_STATIC
option with CMake nativeBUILD_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
- 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
andSQL_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 retrievingvarchar
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 ofSQL_NO_TOTAL
#161
- Put the string lengths in their proper place
#165
- Resolved narrowing from
wchar_t
tochar
warning in VS 2017 updates#199
- Resolved unexpected
bind()
with nulls set tonullptr
behavior#140
- Updated to catch up with breaking change in SQLite ODBC 0.9996
#165
- 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
Thank you to everyone who contributed pull requests for this release:
Amy Troschinetz, Billy O'Neal, Christopher Blaesius, Denis Glazachev, detule, Diego Sogari, H1X4Dev, Jim Hester, Jon Valvatne, Kun Ren, Mateusz Loskot, Michael C. Grant, Rafee Memon, Sauron, Seth Shelnutt, ThermoX360, whizmo
Resolves a possible crash with SQLDescribeParam()
. In Progress OpenEdge 11 driver setting the
nullableptr argument to null causes a crash. This does not affect SQLite or MySQL drivers.
Thanks to @AndrewJD79 for finding and diagnosing the issue!
Unicode: Resolves a major issue with BLOB datatype handling for BINARY and TEXT columns.
Resolves a major issue with BLOB datatype handling for BINARY and TEXT columns.
Resolves a Travis-CI build issue.
Major work undertaken by Mateusz Łoskot provides new features and a host of bug fixes throughout.
Refactoring work moves nanodbc away from platform dependent wchar_t
in favor of char16_t
or in the
case of iODBC with Unicode build enabled, char32_t
. Boost.Test dropped in this version, in favor of Catch.
- Converts usages of
wstring
andwchar_t
tou16string
andchar16_t
. - Enable iODBC + Unicode support with
u32string
types. - Add example program
table_schema.cpp
. - Add
dbms_name()
anddbms_version()
methods toconnection
class.
- Migrates tests from Boost.Test to Catch framework.
- Enables Unicode tests on Travis CI.
- Syncs
Dockerfile
andVagrantfile
; adds quick usage docs for vagrant. - Switch Dockerfile over to
ubuntu:precise
(default). - Improve
odbc_test.cpp
to cope with DBMS variations.
- Fix compiler warnings while building with VS2015.
- Add missing optional
schema_name
parameter to usage info. - Workaround for VS2015 bug in
std::codecvt
forchar16_t
. - Fix retrieval of variable-length data in parts.
- Fix
catalog::columns::is_nullable()
to handle validNULL
. - Fix check of total of characters required to display
SQL_DATE
. - Fix
SELECT
result sorting withNULL
values involved.
- Fixes segmentation fault issue with unixODBC on Linux systems.
- Adds support for
while(!results.end())
style iteration.
- Adds this CHANGELOG.md file. Future releases should update it accordingly!
- Adds CHANGELOG.md helper script.
- Major thanks again to Mateusz Łoskot for all the new features!
- Adds convenient access to catalog objects (tables, columns, primary keys).
- Adds
database_name
andcatalog_name
methods to connection class. - Adds CMake option
NANODBC_ENABLE_LIBCXX
to enable/disable libc++ builds. - Adds CMake option
NANODBC_EXAMPLES
to enable/disable the example target. - Adds a
latest
release branch to track most recent release.
- Massive updates to Travis CI continuous integration.
- Adds general
odbc_test
to target variety of ODBC drivers. - Adds specific MySQL tests.
- Updates test target organization.
- The way the targets were designed is such that:
- test: runs all tests, but will not build them
- tests: builds all tests, but does not run them
- check: builds all tests and then runs all tests
- For individual tests then, it makes sense to use:
- ${name}_test: runs ${name}_test, but will not build it
- ${name}_tests: builds ${name}_test, but does not run it
- ${name}_check: builds ${name}_test and then runs it
- The way the targets were designed is such that:
- Fix test check of
result::affected_rows
forSELECT
statement. - Fix
result::position
to make it consistent withSQL_ATTR_ROW_NUMBER
. - Fix string object construction syntax.
- Adds missing
#include <cstring>
.
- More robust and friendly publish and release scripts.
- Updates to README and documentation.
- Adds
-DUNICODE
and-D_UNICODE
for Visual Studio projects. - Adds examples based on the documentation.
- Adds
rowset_iteration
example.
- Major thanks to Mateusz Łoskot for all the effort!
- Adds Dockerfile to support testing and development.
- Adds build.bat convenience script for Visual Studio users.
- Adds CMake options
NANODBC_INSTALL
andNANODBC_TEST
to control generation of those targets.
- Fixes cmake build on OS X El Capitan.
- Refine assert in
result_impl::position
withSQL_ROW_NUMBER_UNKNOWN
. - MSBuild Platform property for 32-bit is Win32.
- Reset null indicator before move for all columns, not just bound columns.
- Fixes Doxygen generation of macro docs.
- Adds
Vagrantfile
to support testing and development. - Adds customizable
NANODBC_ASSERT
macro. - Adds CMake option
NANODBC_STATIC
(default OFF). - Clean up Visual C++ 64-bit warnings.
- CMake: Fixes ODBC linking on Unix.
- Adds documentation on is_null() limitation.
- Write null indicator to
cbdata_
if indicated bySQLGetData
.
- Initial configuration of Travis CI build matrix.
- Added a Contributing section to readme.
- Updates to SQLite tests.
- Disable MSVC warning C4244 in tests.
- Update CMakeLists.txt to enable builds with Visual Studio. Thanks Mateusz Łoskot!
- Add async connection support, plus extended database_error info. Thanks Yao Wei Tjong!
- Add linking against ODBC libraries on Windows.
- Change
param_type_from_direction
to throwprogramming_error
. - Define
NANODBC_SNPRINTF
in terms of_snprintf_s
for MSVC. - Setting CMake
-DNANODBC_ODBC_VERSION
option now works.
- Adds move constructors.
- Fixes Xcode MARK comments.
- Adds section comment banners to header file.
- Removes
throw()
from header files, usesnoexcept
instead. - Adds basic and SQLite
std::move
test case.
- Resolves issue with decimal digits/scale and rounding. Thanks dedomilo!
- Resolve issue with
DECIMAL
to string conversion. Thanks dedomilo!
- Disable default Unicode on windows.
- Override ODBC version with
NANODBC_ODBC_VERSION
.
- Add
statement::async_execute_direct
andstatement::async_complete
. Thanks Jon Valvatne! - Add NOEXCEPT define to allow compilation under Visual Studio 2013.
- Provides optional Boost workaround for missing
codecvt
support in libstdc++.
- Adds minimap banners for code navigation.
- Adds
column_c_datatype()
. - Converts line endings to Unix.
- Adds
just_execute
class of functions that don't create result objects.
- Adds publish script.
- Fixes broken links in readme.
- Use C++11's
=delete
where appropriate.
- Fixes many documentation issues.
- Adds more ToDo info about updating docs.
- Adds notes about different versions.
- Cleans up style; removes CPP11 macros and C++03 support cruft.
- Silence warnings and untabify.
- Works with Unicode (
std::wstring
asnanodbc::string_type
) - Using nanodbc with SQL Server Native Client works with
nvarchar(max)
andvarchar(max)
fields in Win32 and Win64.
Version 1.0.0 and all commits prior are now completely unsupported.