Small. Fast. Reliable.
Choose any three.

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才可用 。

如果两个或多个线程 同时为同一准备好的语句和结果列调用一个或多个 列元数据接口,则结果是不确定的。

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