Источник данных в результате запроса
const char *sqlite3_column_database_name(sqlite3_stmt*,int); const void *sqlite3_column_database_name16(sqlite3_stmt*,int); const char *sqlite3_column_table_name(sqlite3_stmt*,int); const void *sqlite3_column_table_name16(sqlite3_stmt*,int); const char *sqlite3_column_origin_name(sqlite3_stmt*,int); const void *sqlite3_column_origin_name16(sqlite3_stmt*,int);
Эти функции позволяют определить базу данных, таблицу и столбец таблицы, являющиеся источником конкретного столбца результата в операторе SELECT. Название базы данных, таблицы или столбца может возвращаться в виде строки UTF-8 или UTF-16. Функции _database_ возвращают имя базы данных, функции _table_ возвращают имя таблицы, а функции origin_ возвращают имя столбца. Возвращаемая строка действительна до тех пор, пока подготовленное выражение подготовленное выражение не будет уничтожено с помощью sqlite3_finalize(), пока оператор не будет автоматически переподготовлен первым вызовом sqlite3_step() для конкретного выполнения, или пока та же информация не будет запрошена снова в другом кодировании.
Возвращаемые имена — это исходные, не алиасированные имена базы данных, таблицы и столбца.
Первый аргумент этих интерфейсов — подготовленное выражение. Эти функции возвращают информацию об N-м столбце результата, возвращаемом оператором, где N — второй аргумент функции. Самый левый столбец — столбец 0 для этих функций.
Если N-й столбец, возвращаемый оператором, является выражением или подзапросом и не является значением столбца, все эти функции возвращают NULL. Эти функции также могут возвращать NULL, если произошла ошибка выделения памяти. В противном случае они возвращают имя присоединённой базы данных, таблицы или столбца, из которого был извлечен столбец результата запроса.
Как и все остальные API SQLite, функции с окончанием «16» возвращают строки в кодировке UTF-16, а остальные — в кодировке UTF-8.
Эти API доступны только в том случае, если библиотека была скомпилирована с использованием препроцессора C SQLITE_ENABLE_COLUMN_METADATA.
Если две или более потоков одновременно вызывают один или несколько интерфейсов метаданных столбца для одного и того же подготовленного выражения и столбца результата, то результаты являются неопределёнными.
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/column_database_name.html