使用SOCI Firebird v4.0干线从Firebird数据库读取/写入数据。
问题是,当我通过select语句从一个表中选择超过200万行的所有行时,SOCI抛出一个std::bad_alloc
异常,而我得到的值恰恰是 1024 * 1024 行,即: 1048576
我不知道SOCI是否有限制,或者我在这里还缺少其他东西!
顺便说一句,我将行存储在std::vector
中。
答案 0 :(得分:0)
SOCI和Firebird都不对此负责。 唯一的原因是系统本身的内存不足,并且无法处理 32位版本的 2 ^ 32 。 我必须在 64位中重新编译代码,并在 64位系统中对其进行测试。