RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Метаданные о колонке таблицы

int sqlite3_table_column_metadata(
  sqlite3 *db,                /* Connection handle */
  const char *zDbName,        /* Database name or NULL */
  const char *zTableName,     /* Table name */
  const char *zColumnName,    /* Column name */
  char const **pzDataType,    /* OUTPUT: Declared data type */
  char const **pzCollSeq,     /* OUTPUT: Collation sequence name */
  int *pNotNull,              /* OUTPUT: True if NOT NULL constraint exists */
  int *pPrimaryKey,           /* OUTPUT: True if column part of PK */
  int *pAutoinc               /* OUTPUT: True if column is auto-increment */
);

sqlite3_table_column_metadata(X,D,T,C,....) вернет информацию о колонке C таблицы T в базе данных D по соединению с базой данных X. sqlite3_table_column_metadata() возвращает SQLITE_OK и заполняет не-NULL указатели в заключительных пяти параметрах соответствующими значениями, если указанная колонка существует. sqlite3_table_column_metadata() вернет SQLITE_ERROR, если указанная колонка не существует. Если параметр имени столбца в sqlite3_table_column_metadata() = NULL, это просто проверяет на существование таблицы и возвращает SQLITE_OK, если таблица есть и SQLITE_ERROR, если нет. Если параметр имени таблицы T в вызове sqlite3_table_column_metadata(X,D,T,C,...) = NULL, результатом будет неопределенное поведение.

Колонка определяется вторыми, третьими и четвертыми параметрами функции. Второй параметр это название базы данных ("main", "temp" или приложенная база данных), содержащей указанную таблицу, или NULL. Если это NULL, то все приложенные базы данных проверены на таблицу, используя тот же самый алгоритм, используемый ядром базы данных, чтобы разрешить неквалифицированные ссылки на таблицу.

Третий и четвертый параметры таблица и имя требуемого столбца, соответственно.

Метаданные возвращены в памяти как 5 и последующие параметры этой функции. Любой из этих аргументов может быть NULL, в этом случае соответствующий элемент метаданных опущен.

ПараметрВывод
Тип
Описание

5const char*Тип данных
6const char* Название сортирующей последовательности по умолчанию
7intTrue, если у колонки есть ограничение NOT NULL
8intTrue, если колонка это часть PRIMARY KEY
9intTrue, если колонка это AUTOINCREMENT

Память, на которую указывают указатели, возвращенные для типа декларации и сортирующей последовательности, действительна до следующего обращения к любой API-функции SQLite.

Если указанная таблица на самом деле представление, возвращается код ошибки.

Если указанная колонка "rowid", "oid" или "_rowid_", таблица не является WITHOUT ROWID и столбец, которым была явно объявлена колонка INTEGER PRIMARY KEY, то параметры вывода устанавливаются для явно заявленной колонки. Если нет никакого столбца INTEGER PRIMARY KEY, вывод для rowid установлен следующим образом:

data type: "INTEGER"
collation sequence: "BINARY"
not null: 0
primary key: 1
auto increment: 0

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