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

Получите текущую операцию из Changeset Iterator

int sqlite3changeset_op(
  sqlite3_changeset_iter *pIter,  /* Iterator object */
  const char **pzTab,             /* OUT: Pointer to table name */
  int *pnCol,                     /* OUT: Number of columns in table */
  int *pOp,                       /* OUT: SQLITE_INSERT, DELETE or UPDATE */
  int *pbIndirect                 /* OUT: True for an 'indirect' change */
);

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

Аргументы pOp, pnCol и pzTab не могут быть NULL. По возвращению три вывода установлены через эти указатели:

*pOp установлен в один из SQLITE_INSERT, SQLITE_DELETE или SQLITE_UPDATE, в зависимости от типа изменения, на которое в настоящее время указывает iterator.

*pnCol установлен в количество колонок в таблице, затронутых изменением

*pzTab указывает на nul-законченную utf-8 последовательность, содержащую название таблицы, затронутой текущим изменением. Буфер остается действительным до вызова sqlite3changeset_next() на iterator или до возврата функции-обработчика конфликта.

Если pbIndirect не NULL, *pbIndirect = true (1), если изменение косвенное, или в false (0) иначе. См. документацию для sqlite3session_indirect() для описания прямых и косвенных изменений.

Если никакая ошибка не происходит, SQLITE_OK возвращен. Если ошибка происходит, код ошибки SQLite возвращен. Значениям выходных переменных нельзя доверять в этом случае.