我在 cpp 中与 SOCI 合作
statement sql =
(db.prepare << "insert into table(bunch of columns) "
"values(:s,:e,:qs,:qe, :ts,:te, :qi, :ti,:tutr, :q_oc,:q_g, "
":q_ref, :t_loc, :t_org, :t_ref)",
use(s, use(e), use(q), use(qutop),
use(tart), use(top), use(qame), use(tame),
use(utr), use(qoc), use(qrg), use(qref),
use(toc), use(trg), use(tef));
这里 use() 中的所有变量都是批量输入的向量。
在使用
sql.execute(true);
该语句已执行,但分配的内存从未释放。
我有一个大约 1TB 的大文件,在执行这个文件时,我总是会出现内存溢出。有什么办法可以清除 sql.execute() 完成的内存分配。
现在我已经通过使用解决了
db << "insert into table(bunch of columns) "
"values(:s,:e,:qs,:qe, :ts,:te, :qi, :ti,:tutr, :q_oc,:q_g, "
":q_ref, :t_loc, :t_org, :t_ref)",
use(s, use(e), use(q), use(qutop),
use(tart), use(top), use(qame), use(tame),
use(utr), use(qoc), use(qrg), use(qref),
use(toc), use(trg), use(tef);
但是因为我必须多次使用上述语句,我宁愿使用 statement.execute()