gpt4 book ai didi

c++ - 使用带有 soci::indicators [C++] 的 SOCI 从表中获取行

转载 作者:行者123 更新时间:2023-11-28 07:48:10 35 4
gpt4 key购买 nike

我想从名为“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 语句之前,只有那时我才能从数据库中看到名字。

最佳答案

我认为您不需要为此目的使用 soci::row,而是使用 std::string

//...
std::string firstname;
soci::statement st = (sql.prepare << "SELECT firstname FROM person;"
, soci::into(firstname, ind));

//...
case soci::i_ok:
std::cout << firstname << std::endl;
break;
//...

关于c++ - 使用带有 soci::indicators [C++] 的 SOCI 从表中获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14424043/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com