soci按行打印出table中的所有数据
Soci print out all data in table by rows
在不知道架构的情况下,我该如何执行上述操作?这是我目前所拥有的:
row r;
soci::statement st = (mSql->prepare <<
"select * from tab",
soci::into(r));
st.execute();
while (st.fetch())
{
//want a way to print each row
}
我是这样做的,按列打印出来:
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::string s = (std::string)props.get_name();
int row;
soci::statement st = (mSql->prepare << "select " << props.get_name().c_str() <<" from map", soci::into(row));
st.execute();
while (st.fetch())
{
std::stringstream ss;
ss << row;
std::string str = ss.str();
cout<<str<<" ";
}
cout<<endl;
}
在不知道架构的情况下,我该如何执行上述操作?这是我目前所拥有的:
row r;
soci::statement st = (mSql->prepare <<
"select * from tab",
soci::into(r));
st.execute();
while (st.fetch())
{
//want a way to print each row
}
我是这样做的,按列打印出来:
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::string s = (std::string)props.get_name();
int row;
soci::statement st = (mSql->prepare << "select " << props.get_name().c_str() <<" from map", soci::into(row));
st.execute();
while (st.fetch())
{
std::stringstream ss;
ss << row;
std::string str = ss.str();
cout<<str<<" ";
}
cout<<endl;
}