Spec-Zone.ru › SQLite

Найти все элементы справа от ограничения IN

Найти все элементы справа от ограничения IN.

int sqlite3_vtab_in_first(sqlite3_value *pVal, sqlite3_value **ppOut);
int sqlite3_vtab_in_next(sqlite3_value *pVal, sqlite3_value **ppOut);

Эти интерфейсы полезны только внутри метода xFilter() реализации виртуальной таблицы виртуальной таблицы. Результат вызова этих интерфейсов из любого другого контекста неопределен и, вероятно, вреден.

Параметр X в вызове sqlite3_vtab_in_first(X,P) или sqlite3_vtab_in_next(X,P) должен быть одним из параметров метода xFilter, который вызывает эти функции, и, конкретно, параметром, который ранее был выбран для обработки ограничения IN «все сразу» с использованием интерфейса sqlite3_vtab_in() в методе xBestIndex. Если параметр X не является аргументом xFilter, который был выбран для обработки ограничения IN «все сразу», то эти функции возвращают SQLITE_ERROR.

Используйте эти функции для доступа ко всем значениям справа от ограничения IN, используя код, подобный следующему:

   for(rc=sqlite3_vtab_in_first(pList, &pVal);
       rc==SQLITE_OK && pVal;
       rc=sqlite3_vtab_in_next(pList, &pVal)
   ){
     // do something with pVal
   }
   if( rc!=SQLITE_OK ){
     // an error has occurred
   }

При успешном выполнении функции sqlite3_vtab_in_first(X,P) и sqlite3_vtab_in_next(X,P) возвращают SQLITE_OK и устанавливают *P для указания первого или следующего значения справа от ограничения IN. Если больше значений справа от ограничения IN нет, то *P устанавливается в NULL, а эти функции возвращают SQLITE_DONE. Возвращаемое значение может быть другим значением, например, SQLITE_NOMEM, в случае сбоя.

Значения *ppOut, возвращаемые этими функциями, действительны только до следующего вызова любой из этих функций или до конца метода xFilter, из которого были вызваны эти функции. Если реализации виртуальной таблицы необходимо сохранить значения *ppOut дольше, она должна сделать копии. Значения *ppOut защищены защищены.

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

SQLite is in the Public Domain.
https://sqlite.org/c3ref/vtab_in_first.html

Spec-Zone.ru

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