Spec-Zone.ru › SQLite

Привязка значений массива к табличной функции CARRAY

int sqlite3_carray_bind_v2(
  sqlite3_stmt *pStmt,        /* Statement to be bound */
  int i,                      /* Parameter index */
  void *aData,                /* Pointer to array data */
  int nData,                  /* Number of data elements */
  int mFlags,                 /* CARRAY flags */
  void (*xDel)(void*),        /* Destructor for aData */
  void *pDel                  /* Optional argument to xDel() */
);
int sqlite3_carray_bind(
  sqlite3_stmt *pStmt,        /* Statement to be bound */
  int i,                      /* Parameter index */
  void *aData,                /* Pointer to array data */
  int nData,                  /* Number of data elements */
  int mFlags,                 /* CARRAY flags */
  void (*xDel)(void*)         /* Destructor for aData */
);

Интерфейс sqlite3_carray_bind_v2(S,I,P,N,F,X,D) привязывает значение массива к параметру, который является первым аргументом табличной функции carray(). Параметр S — это указатель на подготовленный оператор, использующий функции carray(). I — индекс привязываемого параметра. I должен быть индексом параметра, который является первым аргументом табличной функции carray(). P — указатель на привязываемый массив, а N — количество элементов в массиве. Аргумент F должен иметь одно из значений констант SQLITE_CARRAY_INT32, SQLITE_CARRAY_INT64, SQLITE_CARRAY_DOUBLE, SQLITE_CARRAY_TEXT или SQLITE_CARRAY_BLOB, указывающих тип данных массива P.

Если аргумент X не является указателем NULL или одним из специальных значений SQLITE_STATIC и SQLITE_TRANSIENT, SQLite вызовет функцию X с аргументом D, когда завершит работу с данными в P. Вызов X(D) служит деструктором массива P. Деструктор X(D) вызывается, даже если вызов sqlite3_carray_bind_v2() завершается ошибкой. Если параметр X имеет специальное значение SQLITE_STATIC, SQLite считает данные статическими и никогда не вызывает деструктор. Если параметр X имеет специальное значение SQLITE_TRANSIENT, sqlite3_carray_bind_v2() создаёт собственную копию данных до возврата из функции и никогда не вызывает деструктор X.

Функция sqlite3_carray_bind() работает так же, как sqlite3_carray_bind_v2(), если параметру D присвоено значение P. Другими словами, sqlite3_carray_bind(S,I,P,N,F,X) эквивалентна sqlite3_carray_bind_v2(S,I,P,N,F,X,P).

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

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

Spec-Zone.ru

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