本文整理汇总了C++中abstract_mapper_base::column_ids方法的典型用法代码示例。如果您正苦于以下问题:C++ abstract_mapper_base::column_ids方法的具体用法?C++ abstract_mapper_base::column_ids怎么用?C++ abstract_mapper_base::column_ids使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类abstract_mapper_base
的用法示例。
在下文中一共展示了abstract_mapper_base::column_ids方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: table_open_exception
void
table_base::rename_field_impl(const abstract_mapper_base &before, const abstract_mapper_base &after) const {
if (_is_open)
throw table_open_exception();
const column_id_set my_columns = _value_mapper.column_ids();
if (! (
is_subset(before.column_ids(), my_columns)
|| is_subset(after.column_ids(), my_columns)
))
throw outside_table_exception(_binomen);
vector<string> names_before;
vector<string> names_after;
before.for_each_persistent_column([&](const persistent_column_mapper &p) { names_before.push_back(p.name()); } );
after.for_each_persistent_column([&](const persistent_column_mapper &p) { names_after.push_back(p.name()); } );
const size_t n = names_before.size();
assert(names_after.size() == n);
transaction txn(_database);
unique_ptr<sql> cmd;
for (size_t i = 0; i < n; i++) {
cmd = _database.make_sql();
cmd->write_rename_column(_binomen, names_before[i], names_after[i]);
_database.get_session()->exec(*cmd);
}
txn.commit();
}