Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用复合键在sqlite_orm中插入条目_C++_Sqlite_Orm - Fatal编程技术网

C++ 如何使用复合键在sqlite_orm中插入条目

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

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
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”};
存储。更换(对象);