有一件事我无法理解Cursor.getType()
,如果光标没有记录但有列,当我想获取列类型时,谁能解释为什么我会得到这个愚蠢的异常?我的意思是,如果游标有记录没有问题,我可以使用getType
方法来获取列类型没有任何问题,但如果没有任何记录,它会抛出这个异常。
问题是为什么我必须需要记录来获取列类型?为什么只知道列名不足以获取它的类型?这很荒谬吗?
有一件事我无法理解Cursor.getType()
,如果光标没有记录但有列,当我想获取列类型时,谁能解释为什么我会得到这个愚蠢的异常?我的意思是,如果游标有记录没有问题,我可以使用getType
方法来获取列类型没有任何问题,但如果没有任何记录,它会抛出这个异常。
问题是为什么我必须需要记录来获取列类型?为什么只知道列名不足以获取它的类型?这很荒谬吗?
这是因为 SQLite 使用动态类型:
大多数 SQL 数据库引擎(据我们所知,除 SQLite 之外的每个 SQL 数据库引擎)都使用静态、严格的类型。使用静态类型,值的数据类型由其容器决定——存储该值的特定列。
SQLite 使用更通用的动态类型系统。在 SQLite 中,值的数据类型与值本身相关联,而不是与其容器相关联。
http://www.sqlite.org/datatype3.html
所以没有价值,没有数据类型。