首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SOCI从获取bigint

使用SOCI从获取bigint
EN

Stack Overflow用户
提问于 2015-04-17 13:01:49
回答 1查看 463关注 0票数 0

我试图从我的数据库(Microsoft )中获取一个bigint值(在我的示例中名为"NUM“)。在下面的代码中,即使我知道一个int比一个bigint小,但强制转换总是失败,我也试图将它作为一个bigint。我还试图将其作为long long int和其他类型的变量来获得,但在运行时总是遇到相同的问题,如下所示。

代码语言:javascript
复制
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';
}

我还尝试了以下方法:

代码语言:javascript
复制
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;

在运行应用程序时,所有测试都会打印相同的错误:

代码语言:javascript
复制
Error: std::bad_cast

我的问题是:获得这个价值的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-20 06:25:40

我不知道这是否是最好的解决方案,但这是我发现的唯一可行的方法:

代码语言:javascript
复制
cout << "MAX_NUM: " << row.get<double>("MAX_NUM") << endl;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29699981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档