首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Create An Iterator To Traverse A Changeset

代码语言:javascript
复制
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.

代码语言:txt
复制
 SQLite is in the Public Domain.

扫码关注腾讯云开发者

领取腾讯云代金券