Получение старых значений из итератора изменений
Аргумент pIter, переданный в эту функцию, может быть либо итератором, переданным обработчику конфликтов функцией sqlite3changeset_apply(), либо итератором, созданным функцией sqlite3changeset_start(). В последнем случае последнее вызов функции sqlite3changeset_next() должно вернуть SQLITE_ROW. Кроме того, она может быть вызвана только в том случае, если тип изменения, на который в данный момент указывает итератор, равен либо SQLITE_DELETE, либо SQLITE_UPDATE. В противном случае эта функция возвращает SQLITE_MISUSE и устанавливает *ppValue в значение NULL.
Аргумент iVal должен быть больше или равен 0 и меньше числа столбцов в таблице, затронутой текущим изменением. В противном случае возвращается SQLITE_RANGE, а *ppValue устанавливается в NULL.
При успешном выполнении эта функция устанавливает *ppValue в указатель на защищённый объект sqlite3_value, содержащий iVal-ый элемент из вектора исходных значений строки, хранящихся в рамках изменения UPDATE или DELETE, и возвращает SQLITE_OK. Название функции происходит от того, что она аналогична столбцам "old.*", доступным для обновлений или триггеров удаления.
Если произойдёт какая-либо другая ошибка (например, ошибка исчерпания памяти), возвращается код ошибки SQLite, а *ppValue устанавливается в NULL.
См. также списки Объектов, Констант и Функций.
SQLite is in the Public Domain.
https://sqlite.org/session/sqlite3changeset_old.html