Spec-Zone.ru › SQLite

Объект значений с динамической типизацией

typedef struct sqlite3_value sqlite3_value;

SQLite использует объект sqlite3_value для представления всех значений, которые могут храниться в таблице базы данных. SQLite использует динамическую типизацию для значений, которые он хранит. Значения, хранящиеся в объектах sqlite3_value, могут быть целыми числами, значениями с плавающей запятой, строками, BLOB или NULL.

Объект sqlite3_value может быть либо «защищенным», либо «незащищенным». Некоторые интерфейсы требуют защищенного sqlite3_value. Другие интерфейсы примут как защищенный, так и незащищенный sqlite3_value. Каждый интерфейс, принимающий аргументы sqlite3_value, указывает, требуется ли защищенный sqlite3_value.

Термины «защищенный» и «незащищенный» относятся к тому, держит ли мьютекс. Внутренний мьютекс удерживается для защищенного объекта sqlite3_value, но мьютекс не удерживается для незащищенного объекта sqlite3_value. Если SQLite скомпилирован для однопоточной работы (с SQLITE_THREADSAFE=0 и sqlite3_threadsafe() возвращающим 0) или если SQLite выполняется в одном из режимов мьютексов с ограниченным функционалом SQLITE_CONFIG_SINGLETHREAD или SQLITE_CONFIG_MULTITHREAD, то нет различия между защищенными и незащищенными объектами sqlite3_value, и их можно использовать взаимозаменяемо. Однако для максимальной переносимости кода рекомендуется, чтобы приложения все равно делали различие между защищенными и незащищенными объектами sqlite3_value, даже когда это строго не требуется.

Объекты sqlite3_value, передаваемые в качестве параметров в реализацию определенных пользователем функций SQL, защищены. Объекты sqlite3_value, возвращаемые sqlite3_vtab_rhs_value(), защищены. Объект sqlite3_value, возвращаемый sqlite3_column_value(), не защищен. Незащищенные объекты sqlite3_value могут использоваться только в качестве аргументов для sqlite3_result_value(), sqlite3_bind_value() и sqlite3_value_dup(). Семейство интерфейсов sqlite3_value_type() требует защищенных объектов sqlite3_value.

19 методов, использующих этот объект:

  • sqlite3_value_blob
  • sqlite3_value_bytes
  • sqlite3_value_bytes16
  • sqlite3_value_double
  • sqlite3_value_dup
  • sqlite3_value_encoding
  • sqlite3_value_free
  • sqlite3_value_frombind
  • sqlite3_value_int
  • sqlite3_value_int64
  • sqlite3_value_nochange
  • sqlite3_value_numeric_type
  • sqlite3_value_pointer
  • sqlite3_value_subtype
  • sqlite3_value_text
  • sqlite3_value_text16
  • sqlite3_value_text16be
  • sqlite3_value_text16le
  • sqlite3_value_type

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

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

Spec-Zone.ru

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