![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
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, в этом случае соответствующий
элемент метаданных опущен. Память, на которую указывают указатели, возвращенные для типа декларации и
сортирующей последовательности, действительна до следующего обращения
к любой API-функции SQLite. Если указанная таблица на самом деле представление, возвращается
код ошибки. Если указанная колонка "rowid", "oid" или "_rowid_", таблица не является
WITHOUT ROWID и столбец, которым была явно
объявлена колонка INTEGER PRIMARY
KEY, то параметры вывода устанавливаются для явно заявленной колонки.
Если нет никакого столбца
INTEGER PRIMARY KEY, вывод для
rowid
установлен следующим образом: Эта функция заставляет все схемы базы данных быть прочитанными с
диска и размеченными, если это не было уже сделано и возвращает ошибку, если
с какими-либо ошибками сталкиваются, загружая схему.
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 */
);
Параметр Вывод
ТипОписание
5 const char* Тип данных
6 const char*
Название сортирующей последовательности по умолчанию
7 int True, если у колонки есть ограничение NOT NULL
8 int True, если колонка это часть PRIMARY KEY
9 int True, если колонка это
AUTOINCREMENT
data type: "INTEGER"
collation sequence: "BINARY"
not null: 0
primary key: 1
auto increment: 0