Small. Fast. Reliable.
Choose any three.

会话模块C接口

获取新值。*来自变更集迭代器的值

int sqlite3changeset_new(
  sqlite3_changeset_iter * pIter,/ * Changeset迭代器* /
  int iVal,/ *列号* /
  sqlite3_value ** ppValue / * OUT:新值(或NULL指针)* /
);

传递给该功能的参数PITER可以是由传递给一个冲突处理程序的迭代器)sqlite3changeset_apply(或通过创建一个迭代()sqlite3changeset_start。在后一种情况下,对sqlite3changeset_next()的最新调用必须返回SQLITE_ROW。此外,仅当迭代器当前指向的更改类型是SQLITE_UPDATESQLITE_INSERT时,才可以调用它。否则,此函数返回SQLITE_MISUSE并将* ppValue设置为NULL。

参数iVal必须大于或等于0,并且小于受当前更改影响的表中的列数。否则, 返回SQLITE_RANGE并将* ppValue设置为NULL。

如果成功,此函数会将* ppValue设置为指向受保护的sqlite3_value对象,该对象包含作为UPDATE或INSERT更改的一部分而存储的新行值向量中的第iVal值,并返回SQLITE_OK。如果更改是UPDATE,并且不包含所请求列的新值,则* ppValue设置为NULL,并返回SQLITE_OK。该函数的名称来自这样的事实,即它类似于可用于更新或删除触发器的“ new。*”列。

如果发生其他错误(例如,OOM条件),则返回SQLite错误代码,并将* ppValue设置为NULL。

另请参见 对象常量函数的列表