RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

Session Module C Interface

Получите значения new.* из Changeset Iterator

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.