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

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

int sqlite3changeset_old(
  sqlite3_changeset_iter *pIter,  /* Changeset iterator */
  int iVal,                       /* Column number */
  sqlite3_value **ppValue         /* OUT: Old value (or NULL pointer) */
);

Аргументом pIter, переданным к этой функции, может быть iterator, переданный обработчику конфликта sqlite3changeset_apply(), или iterator, созданный sqlite3changeset_start(). В последнем случае новое обращение к sqlite3changeset_next() должно возвратить SQLITE_ROW. Кроме того, это можно вызвать только, если тип изменения, на которое в настоящее время указывает iterator, является SQLITE_DELETE или SQLITE_UPDATE. Иначе эта функция возвращает SQLITE_MISUSE и ставит *ppValue = NULL.

iVal должен быть больше или равным 0, но меньше, чем количество колонок в таблице, затронутой текущим изменением. Иначе возвращен SQLITE_RANGE и *ppValue = NULL.

Если успешно, эта функция устанавливает указатель *ppValue на защищенный объект sqlite3_value, содержащий значение iVal от вектора первоначальных значений строки, сохраненных как часть изменения UPDATE или DELETE и вернет SQLITE_OK. Название функции происходит от того, что это подобно столбцам "old.*", доступным, чтобы обновить или удалить триггеры

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