行 API

头文件

libraries/mcdatabase/include/mc/database/row.h

功能点

  • row 类(单行数据操作)
  • 行数据读取与设置
  • 行保存(save、non_persist_save)
  • 行删除(delete_row)
  • 行比较(operator==)
  • 数据字典管理(m_data、m_new_data)
  • rowid 管理

概述

row 类表示单个数据库行,提供读取、修改和删除数据的方法。

类: row

构造函数

row(table& tbl, const mc::dict& values, bool ignore_unknown_col = false);

用给定值创建行实例。

析构函数

~row();

方法

方法 描述
void save(bool flush = true) 将更改保存到数据库
void non_persist_save(bool flush = true) 不持久化保存
void delete_row() 从数据库删除行
void set(std::string_view col_name, const mc::variant& new_value) 设置列值
mc::variant get(std::string_view col_name) 获取列值
bool operator==(const row& other) 比较两行

私有成员

  • m_table: 父表引用
  • m_data: 当前行数据
  • m_new_data: 待更改数据
  • m_rowid: 已存在行的可选 rowid

使用示例

// 创建新行
mc::database::row new_row(my_table, mc::dict()
    ("name", "John")
    ("email", "john@example.com")
);
new_row.save();

// 修改已有行
mc::database::row existing_row(my_table, mc::dict()
    ("id", 1)
    ("name", "John")
);
existing_row.set("name", "Jane");
existing_row.save();

// 获取值
auto name = existing_row.get("name").as_string();

// 删除行
existing_row.delete_row();