小巧、快速、可靠。
任選三項。

Session 模組 C 介面

從 Session 物件產生 Patchset

int sqlite3session_patchset(
  sqlite3_session *pSession,      /* Session object */
  int *pnPatchset,                /* OUT: Size of buffer at *ppPatchset */
  void **ppPatchset               /* OUT: Buffer containing patchset */
);

Patchset 與 Changeset 之間的差異如下:

Patchset blob 可與所有 sqlite3changeset_xxx API 函式的最新版本搭配使用,但 sqlite3changeset_invert() 除外,如果傳遞 patchset 給它,它會傳回 SQLITE_CORRUPT。同樣地,嘗試將 patchset blob 與舊版 sqlite3changeset_xxx API 搭配使用,也會引發 SQLITE_CORRUPT 錯誤。

由於非主鍵「old.*」欄位會被省略,如果將 patchset 傳遞給 sqlite3changeset_apply() API,則無法偵測或回報任何 SQLITE_CHANGESET_DATA 衝突。其他衝突類型的工作方式與 changeset 相同。

Patchset 中的變更排序方式與 sqlite3session_changeset() 函式所產生的 changeset 相同(亦即,單一資料表的變更會全部群組在一起,資料表會按照附加到 session 物件的順序顯示)。

另請參閱 物件常數函式 清單。