Reputation: 1
nanodbc::connection connection("Driver={SQL Server};...");
nanodbc::statement statement(connection);
nanodbc::prepare(statement,"select NULL, CAST(NULL AS VARBINARY(MAX))");
auto results = execute(statement);
while (results.next())
{
for (size_t i = 0; i < results.columns(); ++i)
{
std::cout << "Column " << i << ": " <<
results.column_size(i) << ":" <<
results.is_null( i) << std::endl;
}
}
I get this output:
Column 0: 10:true
Column 1: 2147483647:false
Why? And clear enough,
results.get<std::vector<uint8_t>>(7, {});
throws an exception - whether or not any binary data is returned from the query.
Pre-allocating memory does not help.
Upvotes: 0
Views: 38