C++ XDevAPI 多个 .values

C++ XDevAPI multiple .values

我正在使用 Xcode、MySQL 和 XDevAPI。

我在数据库中有以下 table

create table TABLE(ID INT, VALUE_01 INT, VALUE_02 INT, VALUE_03 INT);

我在代码中有以下值:

Table table(session, "TABLE");
int id;
set<int> numbers;

id = 2395;
numbers.insert(1);
numbers.insert(2);
numbers.insert(3);

所以我想试试:

table.insert("ID", "VALUE_01", "VALUE_02", "VALUE_03")
  .values(id)
  .values(numbers)
  .execute();

但是,我收到运行时错误:

libc++abi.dylib:终止并出现类型为 mysqlx::abi2::r0::Error 的未捕获异常:CDK 错误:插入行中的字段数错误

你能帮帮我吗?

你这里有两个问题。

首先,您调用了 values 两次而不是一次,并且两次您都使用了错误的 [number of] 参数。您应该提供 values() 每行一次 ,每次为该行中的每个字段提供一个值 (ref).

其次,std::set<int> 有序的 ,这意味着对于与 1、2 和 3 不同的输入,您的值可能以与您的顺序不同的顺序存储打算。

我建议改为 std::vector<int>

Table table(session, "TABLE");
int id;
vector<int> numbers;

id = 2395;
numbers.push_back(1);
numbers.push_back(2);
numbers.push_back(3);

table.insert("ID", "VALUE_01", "VALUE_02", "VALUE_03")
  .values(id, numbers[0], numbers[1], numbers[2])
  .execute();