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

Session 模組 C 介面

從變更集反覆運算器取得目前運算

int sqlite3changeset_op(
  sqlite3_changeset_iter *pIter,  /* Iterator object */
  const char **pzTab,             /* OUT: Pointer to table name */
  int *pnCol,                     /* OUT: Number of columns in table */
  int *pOp,                       /* OUT: SQLITE_INSERT, DELETE or UPDATE */
  int *pbIndirect                 /* OUT: True for an 'indirect' change */
);

傳遞給此函式的 pIter 參數可能是傳遞給衝突處理常式的反覆運算器 sqlite3changeset_apply(),或是由 sqlite3changeset_start() 建立的反覆運算器。在後者的情況下,最近一次呼叫 sqlite3changeset_next() 必須傳回 SQLITE_ROW。如果不是這種情況,此函式會傳回 SQLITE_MISUSE

參數 pOp、pnCol 和 pzTab 不能為 NULL。傳回時,會透過這些指標設定三個輸出

*pOp 設定為 SQLITE_INSERTSQLITE_DELETESQLITE_UPDATE 之一,視反覆運算器目前指向的變更類型而定;

*pnCol 設定為變更影響的資料表欄位數目;以及

*pzTab 設定為指向包含目前變更影響的資料表名稱的 null 終止 utf-8 編碼字串。在反覆運算器上呼叫 sqlite3changeset_next() 或衝突處理函式傳回之前,緩衝區仍保持有效。

如果 pbIndirect 不為 NULL,則如果變更是非直接變更,*pbIndirect 會設定為 true (1);否則設定為 false (0)。有關直接和非直接變更的說明,請參閱 sqlite3session_indirect() 的文件。

如果沒有發生錯誤,會傳回 SQLITE_OK。如果確實發生錯誤,會傳回 SQLite 錯誤碼。在此情況下,輸出變數的值可能不可靠。

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