SQLite C 接口
查询结果声明的数据类型
const char *sqlite3_column_decltype(sqlite3_stmt*,int); const void *sqlite3_column_decltype16(sqlite3_stmt*,int);
第一个参数是准备好的语句。如果该语句是一个SELECT语句,并且该SELECT的返回结果集的第 N 列是表列(不是表达式或子查询),则返回表列的声明类型。如果结果集的第 N 列是表达式或子查询,则返回 NULL 指针。返回的字符串始终采用 UTF-8 编码。
例如,给定数据库模式:
CREATE TABLE t1(c1 VARIANT);
以及以下要编译的语句:
SELECT c1 + 1, c1 FROM t1;
此例程将为第二个结果列 (i==1) 返回字符串“VARIANT”,并为第一个结果列 (i==0) 返回 NULL 指针。
SQLite 使用动态运行时类型。因此,仅仅因为列被声明为包含特定类型并不意味着存储在该列中的数据是声明的类型。SQLite 是强类型的,但类型是动态的而不是静态的。类型与单个值相关联,而不是与用于保存这些值的容器相关联。