'person'という名前のテーブルから行を取得したいと思います。名がない場合の例外を避けるために、インジケーターを使ってやりたいと思います。これを行う方法?
私はコードを書きました:
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ステートメントの前に、データベースからの名が表示されます。