SQLite C API equivalent to typeof(col)



我想检测SQLite中任何SELECT查询的列数据类型。

在 C API 中,有用于此目的的const char *sqlite3_column_decltype(sqlite3_stmt*,int)。但这仅适用于实际表中的列。表达式(如LOWER('ABC')(或来自查询的列(如PRAGMA foreign_key_list("mytable")(始终返回此处null

我知道也有typeof(col),但我无法控制触发的 SQL,所以我需要一种方法从预准备语句中提取数据类型。

你正在寻找 sqlite3_column_type((:

sqlite3_column_type()例程返回结果列的初始数据类型的数据类型代码。返回的值是SQLITE_INTEGERSQLITE_FLOATSQLITE_TEXTSQLITE_BLOBSQLITE_NULL之一。sqlite3_column_type()的返回值可用于决定应使用前六个接口中的哪一个来提取列值。

请记住,在 sqlite 中,类型在很大程度上与值相关联,而不是与相关联 - 不同的行可以在同一列中存储不同的类型。

相关内容

  • 没有找到相关文章

最新更新