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

Session 模組 C 介面

從變更集反覆運算器取得 new.* 值

int sqlite3changeset_new(
  sqlite3_changeset_iter *pIter,  /* Changeset iterator */
  int iVal,                       /* Column number */
  sqlite3_value **ppValue         /* OUT: New value (or NULL pointer) */
);

傳遞給此函式的 pIter 參數可以是 sqlite3changeset_apply() 傳遞給衝突處理常式的反覆運算器,或由 sqlite3changeset_start() 建立的反覆運算器。在後者的情況下,對 sqlite3changeset_next() 的最近一次呼叫必須傳回 SQLITE_ROW。此外,僅當反覆運算器目前指向的變更類型為 SQLITE_UPDATESQLITE_INSERT 時,才能呼叫此函式。否則,此函式會傳回 SQLITE_MISUSE,並將 *ppValue 設為 NULL。

參數 iVal 必須大於或等於 0,且小於受目前變更影響的表格中的欄位數。否則,會傳回 SQLITE_RANGE,並將 *ppValue 設為 NULL。

如果成功,此函式會將 *ppValue 設為指向受保護的 sqlite3_value 物件,其中包含 UPDATE 或 INSERT 變更中儲存的新行值向量的第 iVal 個值,並傳回 SQLITE_OK。如果變更為 UPDATE,且不包含所要求欄位的變更值,則會將 *ppValue 設為 NULL,並傳回 SQLITE_OK。此函式的名稱來自於它類似於可供更新或刪除觸發器使用的「new.*」欄位。

如果發生其他錯誤(例如 OOM 狀況),將傳回 SQLite 錯誤碼,而 *ppValue 會設定為 NULL。

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