我想从名为“人”的表中获取行。我想在指标的帮助下做到这一点,以避免当这个人没有名字时出现异常。这个怎么做?
我写了代码:
try
{
soci::statement st = (sql.prepare << "SELECT firstname FROM person;", soci::into(r, ind));
st.execute();
while (st.fetch())
{
if(sql.got_data())
{
switch(ind)
{
case soci::i_ok:
std::cout << r.get<std::string>(0) << "\n";
break;
case soci::i_null:
std::cout << "Person has no firstname!\n";
break;
}
}else
{
std::cout << "There's no such person!\n";
}
}
}
但它没有显示任何行,只有当我添加一行时:
std::cout << r.get<std::string>(0) << "\n";
在我的 if 语句之前,只有这样我才能看到数据库中的名字。