小巧、快速、可靠。
三者择其二。

会话模块 C 接口

从变更集迭代器中获取冲突行值

int sqlite3changeset_conflict(
  sqlite3_changeset_iter *pIter,  /* Changeset iterator */
  int iVal,                       /* Column number */
  sqlite3_value **ppValue         /* OUT: Value from conflicting row */
);

此函数仅应与通过 sqlite3changeset_apply() 传递给冲突处理程序回调的迭代器对象一起使用,其中使用的是 SQLITE_CHANGESET_DATASQLITE_CHANGESET_CONFLICT。如果此函数在任何其他迭代器上调用,则返回 SQLITE_MISUSE 且 *ppValue 设置为 NULL。

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

如果成功,此函数将 *ppValue 设置为指向一个受保护的 sqlite3_value 对象,该对象包含与当前冲突处理程序回调关联的“冲突行”中的第 iVal 个值,并返回 SQLITE_OK。

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

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