C++ 如何使用复合键在sqlite_orm中插入条目
ITNOA 我使用库在我的程序中使用sqlite,我有如下表C++ 如何使用复合键在sqlite_orm中插入条目,c++,sqlite,orm,C++,Sqlite,Orm,ITNOA 我使用库在我的程序中使用sqlite,我有如下表 auto storage=make\u storage(“test\u remove.sqlite”, 制作表格(“对象”, 创建列(“键\u部分\u 1”, &对象::键_部分_1), 创建列(“键\u部分\u 2”, &对象::键_部分_2), 创建列(“名称”, &对象::名称), 主键(&Object::key_part_1和&Object::key_part_2)); 如您所见,此表具有复合键(key\u part\u 1
auto storage=make\u storage(“test\u remove.sqlite”,
制作表格(“对象”,
创建列(“键\u部分\u 1”,
&对象::键_部分_1),
创建列(“键\u部分\u 2”,
&对象::键_部分_2),
创建列(“名称”,
&对象::名称),
主键(&Object::key_part_1和&Object::key_part_2));
如您所见,此表具有复合键(key\u part\u 1
和key\u part\u 2
)。当我从Obejct
创建一个实例时,如下所示
Object对象{0,0,“dummy”};
并尝试在表中插入
auto id1=storage.insert(对象);
我有个例外
因此,我的问题是如何将对象插入此表?正如您在GitHub for Project with中看到的,插入具有复合键的对象的方法必须使用
replace
函数,而不是下面的insert
函数
假设您有如下实体
struct对象
{
int键第1部分;
int键第2部分;
std::字符串名;
};
并创建如下所示的模式
自动存储=生成存储(“test\u remove.sqlite”,
制作表格(“对象”,
创建列(“键\u部分\u 1”,
&对象::键_部分_1),
创建列(“键\u部分\u 2”,
&对象::键_部分_2),
创建列(“名称”,
&对象::名称),
主键(&Object::key_part_1和&Object::key_part_2));
所以你可以像下面那样插入这个实体的一个瞬间
Object对象{0,0,“Skillet”};
存储。更换(对象);