如何在 sql 查询中获取 soci::rowset<std::string>



我有一个带有列名和年龄的表。

我正试图把所有的名字都命名为

soci::session& sql_session(conn->Session());
soci::rowset<std::string> rs = sql_session.prepare << select name from Person;
std::vector<std::string> plist;
std::copy(rs.begin(), rs.end(), plist.begin());

但是我的程序在std::copy时崩溃了。对于std::copy,两个容器(源和目的地(似乎不一样。我们能用ORM做到这一点吗?

如果您需要只读字符串,则不需要使用rowset,在这种情况下,您不需要复制:

const size_t namesLimit = 100;
std::vector<std::string> plist(namesLimit);
soci::session sql_session(...); // connection details
sql_session << "select name from Person;", into(plist);

当然,如果你需要获得所有没有硬编码限制的名称,你可以更早地使用:

size_t namesLimit ;
sql_session << "select count(*) from Person", into(namesLimit);

相关内容

  • 没有找到相关文章

最新更新