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_UPDATE 或 SQLITE_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。