Create An Iterator To Traverse A Changeset
int sqlite3changeset_start(
sqlite3_changeset_iter **pp, /* OUT: New changeset iterator handle */
int nChangeset, /* Size of changeset blob in bytes */
void *pChangeset /* Pointer to blob containing changeset */
);
创建用于遍历变更集内容的迭代器。如果成功,*pp 将被设置为指向迭代器句柄并且将返回 SQLITE_OK。否则,如果发生错误,*pp 将被设置为零并且将返回一个 SQLite 错误代码。
以下函数可用于推进和查询此函数创建的变更集迭代器:
- sqlite3changeset_next()
- sqlite3changeset_op()
- sqlite3changeset_new()
- sqlite3changeset_old()
调用者有责任最终通过将迭代器传递给 sqlite3changeset_finalize() 来销毁迭代器。在迭代器被销毁之前,包含变更集的缓冲区 (pChangeset) 必须保持有效。
假设变更集 blob 是由 sqlite3session_changeset()、sqlite3changeset_concat() 或 sqlite3changeset_invert() 函数之一创建的,则变更集中应用于单个表的全部变更会被组合在一起。这意味着当应用程序使用由该函数创建的迭代器遍历某个变更集时,与某个表相关的全部变更会被连续访问。该迭代器不可能访问一个应用于表 X 的变更,然后访问一个针对表 Y 的变更,再往后续访问一个应用于表 X 的变更。
See also lists of Objects, Constants, and Functions.
SQLite is in the Public Domain.
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com