Small. Fast. Reliable.
Choose any three.

会话模块C接口

获取旧的。*从Changeset迭代器获得的值

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

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

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

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

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

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