小巧。快速。可靠。
三选二。

SQLite C 接口

查询结果中的数据来源

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。否则,它们将返回查询结果列从中提取的附加数据库、表或列的名称。

与所有其他 SQLite API 一样,名称以“16”结尾的 API 返回 UTF-16 编码的字符串,其他函数返回 UTF-8。

只有在库使用 SQLITE_ENABLE_COLUMN_METADATA C 预处理器符号编译时,这些 API 才可用。

如果两个或多个线程同时对同一个 预处理语句 和结果列调用一个或多个 列元数据接口,则结果未定义。

另请参见 对象常量函数 列表。