小。快。可靠。
三选一。

会话模块C接口

从变更组获取复合变更集

int sqlite3changegroup_output(
  sqlite3_changegroup*,
  int *pnData,                    /* OUT: Size of output buffer in bytes */
  void **ppData                   /* OUT: Pointer to output buffer */
);

获取一个包含变更集(或补丁集)的缓冲区,该变更集(或补丁集)表示变更组的当前内容。如果变更组的输入本身是变更集,则输出是变更集。或者,如果输入是补丁集,则输出也是补丁集。

与 sqlite3session_changeset() 和 sqlite3session_patchset() 函数的输出一样,与单个表相关的更改在该函数的输出中分组在一起。表以与添加到变更组的第一个变更集相同的顺序出现。如果添加到变更组的第二个或后续变更集中包含未出现在第一个变更集中的表的更改,则它们将附加到输出变更集的末尾,再次以它们第一次遇到的顺序出现。

如果发生错误,将返回一个 SQLite 错误代码,并且输出变量 (*pnData) 和 (*ppData) 将设置为 0。否则,将返回 SQLITE_OK,并且输出变量将分别设置为输出缓冲区的大小和指向该缓冲区的指针。在这种情况下,调用者有责任最终使用对 sqlite3_free() 的调用来释放该缓冲区。

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