我正在尝试获取bigint
来自我的数据库(Microsoft SQL Server)的值(在我的示例中名为“NUM”)。int
在下面的代码中,即使我知道 anint
小于 abigint
但强制转换总是失败,我也试图将其作为 a 来获取。我也尝试将它作为 along long int
和其他一些类型的变量,但我总是在运行时遇到同样的问题,如下所示。
try
{
session sql(odbc, "...");
rowset<row> rs = (sql.prepare << "SELECT MAX(NUM) AS MAX_NUM FROM T1");
for (rowset<row>::const_iterator it = rs.begin(); it != rs.end(); ++it)
{
row const& row = *it;
cout << "MAX_NUM: " << row.get<int>("MAX_NUM") << endl;
}
}
catch (exception const &e)
{
cerr << "Error: " << e.what() << '\n';
}
我还尝试了以下吸气剂:
cout << "MAX_NUM: " << row.get<long>("MAX_NUM") << endl;
cout << "MAX_NUM: " << row.get<long long>("MAX_NUM") << endl;
cout << "MAX_NUM: " << row.get<long long int>("MAX_NUM") << endl;
当我运行我的应用程序时,我的所有测试都会打印相同的错误:
Error: std::bad_cast
我的问题是:获得这个值的正确方法是什么?