首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在soci中获取表的模式或行名?

如何在soci中获取表的模式或行名?
EN

Stack Overflow用户
提问于 2017-03-04 01:32:38
回答 1查看 411关注 0票数 2

我正在尝试实现this,我知道如何做到这一点,indirectly...if我可以得到一个表的模式。

我如何使用soci来做这件事?

我试过了:

代码语言:javascript
复制
std::string i;
soci::statement st = (mSql->prepare <<
               "show create table tab;",
               soci::into(i));
st.execute();
while (st.fetch())
{   
         std::cout << i <<'\n';
}

但是只有"tab“被打印出来。

我也试过了,取自GitHub中的Soci文档:

代码语言:javascript
复制
soci::column_info ci;
soci::statement st = (mSql->prepare_column_descriptions(table_name), into(ci));

st.execute();
while (st.fetch())
{
    // ci fields describe each column in turn
}

但被告知column_info不是soci的成员。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-04 04:20:13

我找到了下面的代码here

代码语言:javascript
复制
soci::row v;
soci::statement st = (mSql->prepare << "SELECT * FROM tab", into(v));
st.execute(true);  /* with data exchange */
unsigned int num_fields = v.size();
std::cout << "fields: " << num_fields << std::endl;
num_fields = (num_fields <= 9) ? num_fields : 9;
unsigned long num_rows = (unsigned long)st.get_affected_rows();
std::cout << "rows: " << num_rows << std::endl;
for (size_t i = 0; i < num_fields; ++i) {
    const soci::column_properties &props = v.get_properties(i);
    std::cout << props.get_name() << '\t';
}
std::cout << std::endl;

最后打印的是列的正确名称。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42585140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档