Closed matthew-wozniczka closed 7 years ago
From the implementation point of view, it will be much easier to implement if only 1 'version' of a column needed to exist at a time (as is not the case if the example above involves SQL_METADATA_CHANGED
).
Also, it brings up issues like, if the application could have two open nested statements on the same column but separate rows, would modifications to one of them affect the other (descriptors, statement attributes), and if they did, how would that work in the case of a variant column with different types on different rows?
I think it's a box better left unopened.
Unless GD_CONCURRENT bit has been set in SQL_GETDATA_EXTENSIONS, calling SQLNextColumn should close any nested handles.
GD_CONCURRENT should not be supported for rowset size >1.
Consider the following scenario.
SQLFetch
, which returns withSQL_DATA_AVAILABLE
SQLNextColumn
, then opens a nested statement on columnN
SQLNextColumn
again, and opens another nested statement on columnN
(but on a separate row)Can this happen? Section 6.2.1 says:
which seems to forbid this. But it doesn't seem like the handle opened in (2) is implicitly closed by a call to
SQLGetNextColumn
(There is justApplications SHOULD call SQLCloseCursor on the nested handle when finished reading results.
, which hasSHOULD
), so it's unclear what should happen.