4

有一件事我无法理解Cursor.getType(),如果光标没有记录但有列,当我想获取列类型时,谁能解释为什么我会得到这个愚蠢的异常?我的意思是,如果游标有记录没有问题,我可以使用getType方法来获取列类型没有任何问题,但如果没有任何记录,它会抛出这个异常。

问题是为什么我必须需要记录来获取列类型?为什么只知道列名不足以获取它的类型?这很荒谬吗?

4

1 回答 1

9

这是因为 SQLite 使用动态类型:

大多数 SQL 数据库引擎(据我们所知,除 SQLite 之外的每个 SQL 数据库引擎)都使用静态、严格的类型。使用静态类型,值的数据类型由其容器决定——存储该值的特定列。

SQLite 使用更通用的动态类型系统。在 SQLite 中,值的数据类型与值本身相关联,而不是与其容器相关联。

http://www.sqlite.org/datatype3.html

所以没有价值,没有数据类型。

于 2011-11-15T09:10:03.983 回答