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

SQLite C 接口

查询结果的声明数据类型

const char *sqlite3_column_decltype(sqlite3_stmt*,int);
const void *sqlite3_column_decltype16(sqlite3_stmt*,int);

第一个参数是 预处理语句。如果该语句是 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 是强类型的,但类型是动态的而不是静态的。类型与单个值相关联,而不是与用于保存这些值的容器相关联。

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