admin管理员组

文章数量:1243198

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.

本文标签: Retrieving binary data with nanodbc from SQL Server failsStack Overflow