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