int sqlite3changeset_new( sqlite3_changeset_iter *pIter, /* Changeset iterator */ int iVal, /* Column number */ sqlite3_value **ppValue /* OUT: New value (or NULL pointer) */ );
pIter аргументом, переданным к этой функции, может быть iterator, переданный обработчику конфликта sqlite3changeset_apply(), или итератор, созданный sqlite3changeset_start(). В последнем случае новое обращение к sqlite3changeset_next() должно быть, возвратило SQLITE_ROW. Кроме того, это можно вызвать только если тип изменения, на которое в настоящее время указывает iterator, является SQLITE_UPDATE или SQLITE_INSERT. Иначе эта функция возвращает SQLITE_MISUSE и *ppValue = NULL.
Аргумент iVal должен быть больше или равным 0, но меньше, чем количество колонок в таблице, затронутой текущим изменением. Иначе SQLITE_RANGE возвращен, и *ppValue установлен в NULL.
Если успешно, эта функция устанавливает указатель *ppValue на защищенный объект sqlite3_value, содержащий значение iVal от вектора новых значений строки, сохраненных как часть изменения UPDATE или INSERT и вернет SQLITE_OK. Если изменение UPDATE и не включает новое значение для требуемой колонки, *ppValue установлен в NULL и возвращен SQLITE_OK. Название функции происходит от того, что это подобно колонке "new.*", доступной, чтобы обновить или удалить триггеры.
Если некоторая другая ошибка происходит (например, условие OOM), код ошибки SQLite возвращен, и *ppValue установлен в NULL.