int sqlite3session_patchset( sqlite3_session * pSession,/ *会话对象* / int * pnPatchset,/ * OUT:* ppPatchset * /处的缓冲区大小 无效** ppPatchset / * OUT:包含补丁集的缓冲区* / );
补丁集和变更集之间的区别在于:
补丁集blob可以与所有sqlite3changeset_xxx API函数的最新版本一起使用,但sqlite3changeset_invert()除外,如果传递了补丁集,该函数会返回SQLITE_CORRUPT。同样,尝试对旧版本的sqlite3changeset_xxx API使用补丁集Blob也会引发SQLITE_CORRUPT错误。
由于省略了非主键“ old。*”字段,因此,如果将补丁集传递到sqlite3changeset_apply()API,则不会检测到或报告任何SQLITE_CHANGESET_DATA冲突。其他冲突类型的工作方式与变更集的工作方式相同。
补丁集内的更改的排序方式与sqlite3session_changeset()函数生成的变更集的排序方式相同(即,单个表的所有更改都分组在一起,表以将它们附加到会话对象的顺序显示)。