Spec-Zone.ru › SQLite

Получение новых значений из итератора изменений

Аргумент 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, содержащий iVal-й элемент из вектора новых значений строки, сохранённых в рамках изменения UPDATE или INSERT, и возвращает SQLITE_OK. Если изменение является UPDATE и не включает новое значение для запрошенного столбца, *ppValue устанавливается в NULL, и возвращается SQLITE_OK. Название функции происходит от сходства с колонками "new.*", доступными триггерам обновления или удаления.

Если возникает другая ошибка (например, условие недостатка памяти), возвращается код ошибки SQLite, а *ppValue устанавливается в NULL.

См. также списки Объектов, Констант и Функций.

SQLite is in the Public Domain.
https://sqlite.org/session/sqlite3changeset_new.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API