Get bigint from Microsoft SQL Server with SOCI
Get bigint from Microsoft SQL Server with SOCI
我正在尝试获取来自我的数据库(Microsoft SQL Server)的bigint
值(在我的示例中名为"NUM")。在下面的代码中,即使我知道int
小于bigint
但强制转换总是失败,我也试图将其作为int
。我还尝试将其作为long 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
我的问题是:获得此值的正确方法是什么?
我不知道
这是否是最好的解决方案,但它是我发现的唯一有效的解决方案:
cout << "MAX_NUM: " << row.get<double>("MAX_NUM") << endl;
相关文章:
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- VisualStudio:使用 Suse Enterprise Server 12 SP5 时,不会下载远程库标头
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- specialized std::default_delete with QQmlComponent
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- Get bigint from Microsoft SQL Server with SOCI
- winhttpsendrequest POST with https on windows server 2008 rc