Python ODBC bridge
A backwards compatibility bug on Windows was causing "missing DLL" errors and not allowing pyodbc to be loaded (#663). This affected Python versions 3.5+. This was due to building with a compiler that was newer than those used by the official Python builds. The newer Visual Studio 2019 introduced a dependency a new DLL which doesn't ship with Python, so pyodbc would fail to load unless something else had already installed the DLL.
Keith Erskine added a fix to check for overflow of integer and floating point parameters so that a proper Python exception is raised (#671).
Kieth and Gord Thompson also provided a bunch of improvements for unit tests.
Anatoli Babenia updated the readme with a badge for PyPI which provides a quick link to it. Very nice. PyPI should now also include the contents of the readme instead of just a single sentence thanks to a commit by Keith.
Fixes in this release:
Many thanks to everyone who provided these fixes. Merry Christmas.
This is mostly a bug fix release.
Additionally, thanks @gordthompson for both adding get_output_converter
(#496) and for updating the SQL Server tests to properly bypass issues not supported with the FreeTDS driver.
Due to #506, I recommend upgrading from 4.0.25 where the issue was introduced.
Many thanks to the community for this release:
test_tvp
in the SQL Server unit tests.This is a bug fix release with fixes from lots of contributors:
Some changes in 4.0.22 to integrate the old parameter binding and the new executemany array binding have not handled Unicode in all cases. The integration has been reverted to ensure pyodbc is as stable as possible.
If you had issues with 4.0.22, please try 4.0.23.
This is a minor release that adds:
Sorry everyone - I left a debug printf statement in the 4.0.18 code. Please use this instead. I'm reproducing the 4.0.18 tag release notes here:
This is a primarily a fix patch, thought it does contain one new feature that is turned off by default:
The feature is an optimized Cursor.executemany
that binds parameters into an array to drastically reduce network round trips. This can be a major speedup, but this preliminary version is turned off by default because it can only be used with drivers that use UCS-2 exclusively and that properly deal with the ODBC numeric structure. Right now I would recommend only using this with SQL Server on Windows. This feature will be tweaked in the near future to support as many drivers as possible and to use the configured encodings.
None
passed in for optional keyword parameters such as Cursor.columns('t1', schema=None)
.This is a primarily a fix patch, thought it does contain one new feature that is turned off by default:
The feature is an optimized Cursor.executemany
that binds parameters into an array to drastically reduce network round trips. This can be a major speedup, but this preliminary version is turned off by default because it can only be used with drivers that use UCS-2 exclusively and that properly deal with the ODBC numeric structure. Right now I would recommend only using this with SQL Server on Windows. This feature will be tweaked in the near future to support as many drivers as possible and to use the configured encodings.
None
passed in for optional keyword parameters such as Cursor.columns('t1', schema=None)
.