Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi @jimhester
This is one approach to tackling the infamous "invalid descriptor" problem. The idea is: If driver is such that out-of-order-retrieval via
SQLGetData
is not possible then unbind allnanodbc
buffers past the first unbound (blob) column.First two patches are a clean-ish backport of the upstream patches that introduce the 'result::unbind' endpoint - but more importantly, route calls to
get<T>
toSQLGetData
if there is no bound buffer. Previously this (no buffer bound to the column) was the case only for blobs, but now it's possible for non-blobby columns if the user asked these to be unbound.Second two are
package:odbc
patches that implement the "unbind-if-necessary" logic.connection::get_data_any_order
is particularly ugly - happy to make updates there and elsewhere.Thanks