const char *sqlite3_column_name(sqlite3_stmt*, int N); const void *sqlite3_column_name16(sqlite3_stmt*, int N);
这些例程返回分配给 SELECT 语句结果集中的特定列的名称。sqlite3_column_name() 接口返回指向以零结尾的 UTF-8 字符串的指针,sqlite3_column_name16() 返回指向以零结尾的 UTF-16 字符串的指针。第一个参数是实现 SELECT 语句的 预备语句。第二个参数是列号。最左侧的列是数字 0。
返回的字符串指针在 预备语句 被 sqlite3_finalize() 销毁之前,或在语句被第一次调用 sqlite3_step() 自动重新准备之前,或者在对同一列的下一个调用 sqlite3_column_name() 或 sqlite3_column_name16() 之前有效。
如果在处理任何例程期间 (例如在从 UTF-8 转换为 UTF-16 期间) sqlite3_malloc() 失败,则返回 NULL 指针。
结果列的名称是该列的 "AS" 子句的值 (如果有 AS 子句)。如果没有 AS 子句,则列的名称未指定,并且可能会在 SQLite 的不同版本之间发生变化。